SAIF.Framework.Core dependencies¶
SAIF.Framework.Core has no intra-repo project dependencies — it is a single-project solution (SAIF.Framework.Core.sln) with no <ProjectReference> elements. Its dependency landscape combines two internal NuGet packages (SAIF.HashUtil, SAIF.Web.API.Clients — both confirmed on the SAIFNuget feed, though neither is indexed by the Legends CLI) with a set of external packages: a DI container, a validation framework, WCF/AD compatibility shims, and OpenTelemetry instrumentation. As the root of the SAIF.Framework.* family, it makes outbound calls to several external WCF/REST/LDAP back ends on behalf of the platform services it implements.
Internal dependencies¶
No intra-repo project references were found. SAIF.Framework.Core.csproj declares no <ProjectReference> elements, and SAIF.Framework.Core.sln builds only this single project. Two internal NuGet packages are consumed via <PackageReference>, however — both confirmed on the SAIFNuget feed (legends nuget exists, exit 0, exists: true) but not present in the Legends CLI documentation index, so no inherited/transitive content is available for either one.
| Dependency | Reference Type | Usage |
|---|---|---|
SAIF.HashUtil |
NuGet Package | Consumed via SystemHashUtil.cs (Services.Common\SystemHashUtil.cs); produced by a separate SAIF repository not analyzed in this run |
SAIF.Web.API.Clients |
NuGet Package | Provides JsonHttpClient, ClientInfo consumed throughout (EnvironmentServiceBase, SecurityApiClient, WindowsEnvironmentService); produced by a separate SAIF repository not analyzed in this run |
External dependencies¶
| Dependency | Version | Usage |
|---|---|---|
Autofac |
[3.5.2,) (per .nuspec) |
DI container consumed directly by ServiceRegistrations and ValidatorFactory |
FluentValidation |
Not pinned in .nuspec* |
Validation framework consumed by FluentValidationService, ValidatorFactory, FaxService.FaxConfigValidator |
Grpc.Core |
[2.44.0] (pinned) |
gRPC runtime |
log4net |
Not pinned in .nuspec* |
Logging sink implementation consumed by LogService |
System.Runtime.InteropServices.RuntimeInformation |
Not pinned in .nuspec* |
.NET BCL compatibility package |
OpenTelemetry.Exporter.OpenTelemetryProtocol |
Not pinned in .nuspec* |
OTLP tracing/metrics wiring in Services\OpenTelemetry\OpenTelemetryExtensions.cs |
OpenTelemetry.Instrumentation.AspNet |
Not pinned in .nuspec* |
OTLP tracing/metrics wiring in Services\OpenTelemetry\OpenTelemetryExtensions.cs |
OpenTelemetry.Instrumentation.Http |
Not pinned in .nuspec* |
OTLP tracing/metrics wiring in Services\OpenTelemetry\OpenTelemetryExtensions.cs |
OpenTelemetry.Instrumentation.Runtime |
Not pinned in .nuspec* |
OTLP tracing/metrics wiring; also consumed in EnvironmentServiceBase (ActivitySource) |
System.Configuration.ConfigurationManager |
Not pinned in .nuspec* |
.NET compat shim backing ConfigurationManager.AppSettings usage |
System.DirectoryServices |
Not pinned in .nuspec* |
Backing ADService's AD group-membership queries |
System.DirectoryServices.AccountManagement |
Not pinned in .nuspec* |
Backing ADService's AD group-membership queries |
System.ServiceModel.Primitives |
Not pinned in .nuspec* |
WCF compat shim backing all Services.WCF.* contracts/clients |
System.Xml.XDocument |
Not pinned in .nuspec* |
Backing PropertiesFileUtilities XML-file reads |
API dependencies¶
This library implements platform services that call outbound WCF/REST/LDAP endpoints on behalf of consumers.
| Endpoint | Method | Called from | Usage |
|---|---|---|---|
WCF SecurityService (securityServiceUrl) |
IsAuthorized, IsAuthorized2, GetUser, GetSaifUserByUserId, GetUserIdForEmployeeId, GetSaifUserByEmployeeId, GetExternalUser, GetExternalUserByCustomerId, GetInjuredWorkerUserByCustomerId, GetUsersByGroup |
SecurityServiceClient (internal), invoked via SecurityGroupService, SystemUserProfile |
Resource/role authorization checks and AD-group membership queries fronted through BasicHttpBinding |
REST Security API (SecurityClient.ServiceUrl) |
GET /v1/Users/GetUser/{domain}/{username} |
SecurityApiClient.GetUser |
Retrieve a user profile from the REST-based Security API |
REST Security API (SecurityClient.ServiceUrl) |
GET /v1/Users/IsAuthorized/{domain}/{username}/{role} |
SecurityApiClient.IsAuthorized |
Role/resource authorization check via the REST-based Security API |
| Legacy ASMX Active Directory service | HasAccess → HasAccessCache/HasAccessCacheExternal, GetDefaultPrinter, GetContact → GetUserInfo |
ActiveDirectoryServiceProxy (legacy, no in-repo caller found — likely dead code)* |
Legacy AD group/resource membership and directory lookups |
Environment API ({EnvironmentApiUrl}/v2/settings/{ApplicationId}/{ApplicationHost}/{section}/section) |
GetGlobalConfigSettings / LoadSection (WebClient.DownloadString) |
EnvironmentServiceBase |
Fetches configuration sections and global settings to populate the in-memory Configurations cache |
Environment API ({EnvironmentApiUrl}/v2/secureSetting/{applicationId}/{track}/{section}/{key}/value) |
GetSecureConfigSetting (via JsonHttpClient) |
EnvironmentServiceBase |
Retrieves encrypted/credential settings, cached in SecureSettingCache |
Legacy DbConnectionServiceProxy (dbConnectionServiceUrl) |
GetOracleConnectionString, GetSqlServerConnectionString (proxy calls) |
DbConnectionManager |
Resolves live Oracle/SQL Server connection strings from an instance/server name indirection |
WCF/SOAP document endpoints (documentGeneratorServiceUrl, faxServiceUrl, fileServiceUrl, imagingServiceUrl, pdfServiceUrl, preferenceServiceUrl, uc4coreapi.url, workCalendarServiceUrl) |
Various (service-specific) | DocumentService, FaxService, FileService, ImagingService, PDFService, PreferenceService, UC4Service, WorkCalendarService |
Each concrete platform service fronts its own WCF/SOAP endpoint resolved via IEnvironmentService.GetConfigSetting |
REST logging API (tracingdefaults.loggingapiurl, tracingdefaults.logerrorroute) |
POST (via RestApiAppender) |
LogService, log4netAppenders.RestApiAppender |
Posts application log entries to a REST-based centralized logging sink |
Dependency risks and notes¶
SAIF.Common(EntityBase<TEntity>,IDataEntity,Enforce,LongSequence,Extensions.*) is used pervasively throughout this library but has no confirmed<PackageReference>/<ProjectReference>inSAIF.Framework.Core.csprojor its.nuspec<dependencies>— presumed transitive throughSAIF.HashUtilorSAIF.Web.API.Clients(both confirmed internal NuGet packages on the SAIFNuget feed, but neither is indexed by the Legends CLI, so their own dependency graphs remain unknown*), and this transitive path is unconfirmed. This is an open risk for downstream dependency-graph accuracy.SaifValidationException(thrown byFluentValidationService.ValidateAndThrow<T>) is not defined anywhere in this project'sExceptions\*folder — likely defined in the same unresolvedSAIF.Common-family dependency.*SAIF.HashUtilandSAIF.Web.API.Clientsare confirmed internal NuGet packages on the SAIFNuget feed (legends nuget exists, bothexists: true; declared<PackageReference>s with explicit.nuspecversion ranges[2,3)), but neither is indexed by the Legends CLI, and both are produced by separate SAIF repositories not analyzed in this run — their own transitive dependency graphs remain unknown.**- The generic
IUnitOfWork/IRepository<TEntity>data-access abstraction has no production implementation shipped in this library (only an in-memoryTestRepository/TestUnitOfWorktest double) — consumers or other Framework4 libraries must supply the real implementation, which is an implicit dependency-graph gap for any consumer relying on this library alone for data access. PropertiesFileUtilities.GetValue(backed bySystem.Xml.XDocument) has no internal call sites in this library — it is a declared-but-unused public utility retained for consuming web applications.*- The legacy ASMX
ActiveDirectoryServiceProxydependency path has no in-repo caller and is flagged as likely-dead legacy code, not an active runtime dependency.* nuget.configis present at the repository root but itsrepositoryPath/custom sources were not inspected during analysis — flagged as an open question for source verification.**
Related documentation¶
- Index
- Overview
- Architecture
- Configuration
- Operations and processes
- Business rules
- Security and authorization
- API reference
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¶
Core\SAIF.Core\SAIF.Framework.Core.csprojCore\SAIF.Core\SAIF.Framework.Core.nuspecCore\SAIF.Core\app.configCore\SAIF.Core\Services.Common\SystemHashUtil.csCore\SAIF.Core\Services.Common\EnvironmentServiceBase.csCore\SAIF.Core\Services.Common\DbConnectionManager.csCore\SAIF.Core\Services.Common\WindowsEnvironmentService.csCore\SAIF.Core\Services\ClientProxies\SecurityServiceClient.csCore\SAIF.Core\Services\ClientProxies\Legacy\ActiveDirectoryServiceProxy.csCore\SAIF.Core\Services\Utilities\SecurityApiClient.csCore\SAIF.Core\Services\Utilities\FluentValidationService.csCore\SAIF.Core\Services\Utilities\LogService.csCore\SAIF.Core\Services\Utilities\Documents\DocumentService.csCore\SAIF.Core\Services\Utilities\Documents\FaxService.csCore\SAIF.Core\Services\Utilities\Documents\PdfConvertAndMergeService.csCore\SAIF.Core\Services\Utilities\Documents\ImagingService.csCore\SAIF.Core\Services\Utilities\Documents\PDFService.csCore\SAIF.Core\Services\Utilities\Documents\PrintService.csCore\SAIF.Core\Services\Utilities\FileService.csCore\SAIF.Core\Services\Utilities\PreferenceService.csCore\SAIF.Core\Services\Utilities\UC4Service.csCore\SAIF.Core\Services\Utilities\WorkCalendarService.csCore\SAIF.Core\Services.WCF\Contracts\ISecurityService.csCore\SAIF.Core\Services.WCF\ClientProxies\DisposableClientBase.cs