SAIF.Business.External.Users architecture¶
SAIF.Business.External.Users is a component-tier BOF business library (class library, no program entry point) that manages identity, credentials, and access-group data for external (non-employee) portal users, plus the auditor/zip-code assignment data used by claim audit-assignment workflows. It follows the standard SAIF BOF pattern of clsBusinessBase/clsBusinessCollectionBase subclasses with nested IBusinessCriteria classes carrying SQL and lifecycle Before*/After* methods.
Responsibilities¶
- Manage external-user identity, credentials, status flags, and the
IsAuthorizedUserauthorization data flag. - Manage security questions used for password recovery.
- Manage a deny-self-registration block-list checked during user registration.
- Manage user-type/role code classification and user access-group membership.
- Manage auditor entities, auditor zip-code geographic assignment, and audit-assignment overrides used by claim audit workflows.
Component boundaries¶
clsUser(+ nestedclsUserCollection): core external-user entity — credentials, status,IsAuthorizedUserflag, CRUD lifecycle.clsAuditor/clsAuditorCollection,clsAuditAssignmentOverride,clsAuditorZipCode/clsAuditorZipCodeCollection: auditor entity, assignment overrides, and geographic (zip code) association for claim-audit assignment.clsUserAccessGroup(+ nested collection): group membership data for external users, including AD-group association tables.clsUserDenySelfRegistration(+ nested collection): deny-list entries checked during self-registration.*clsUserSecurityQuestion(+ nested collection): security question/answer records for password recovery.clsUserType(+ nested collection): user type/role code lookups.clsZipCode: standalone zip code lookup entity.clsCredentials,clsPassword,clsNewUserArgs,clsAudit: supporting value/argument objects.*mdlAuditor,mdlCodeMaps,mdlExtensions,mdlGroupAssociation: shared helper modules, code-table maps, and extension methods.- Generated
Institutionstyped DataSet: excluded from hand-authored business surface.
Interaction model¶
- This library sits at a comparatively high point in the dependency graph: it depends on numerous other
SAIF.BOF.Business.*libraries (Claim, Claim.Authority, Claim.Maintenance, Claim.MedicalBill, Claim.Payment, Claim.Person, CustomerContact, EPay.USBank, Payment, Payment.EFT, Policy and Policy.* sublibraries, Provider.PaymentPreference, Tasks, Tasks.Claim, Utilities, View.Claim, View.Policy, View.Provider), aggregating identity concerns across claim/policy/payment/provider domains.* - All persistence flows through the standard BOF
IBusinessCriteriapattern (CreateSQL/RetrieveSQL/InsertSQL/UpdateSQL/DeleteSQL) against an Oracle database, evidenced by:-prefixed bind-variable syntax and Oracle client configuration sections. - No presentation-layer types or WCF/Web API surface were detected in this library's own source; it is consumed by calling application layers that presumably enforce the
IsAuthorizedUserflag and deny-self-registration checks.*
Architecture diagram¶
The following diagram shows the high-level component grouping within the library and its position relative to consuming and Oracle persistence layers.
flowchart TD
Caller[Consuming application / BOF layer] --> User[clsUser / clsUserCollection]
Caller --> Auditor[clsAuditor / clsAuditorZipCode / clsAuditAssignmentOverride]
Caller --> AccessGroup[clsUserAccessGroup]
User --> UserType[clsUserType]
User --> SecQ[clsUserSecurityQuestion]
User --> DenyReg[clsUserDenySelfRegistration]
User --> ZipCode[clsZipCode]
Framework[SAIF.BOF.Framework<br>clsBusinessBase / clsBusinessCollectionBase] --> User
Framework --> Auditor
Framework --> AccessGroup
User --> DB[(Oracle database)]
Auditor --> DB
AccessGroup --> DB
Sequence diagram¶
The following diagram shows the primary retrieve/persist sequence for an external user record via the BOF lifecycle.
sequenceDiagram
participant Caller
participant clsUser
participant Criteria as clsUser.Criteria (IBusinessCriteria)
participant Oracle as Oracle database
Caller->>clsUser: Retrieve / Save
clsUser->>Criteria: BeforeRetrieve / BeforeInsert / BeforeUpdate
Criteria-->>clsUser: RetrieveSQL / InsertSQL / UpdateSQL
clsUser->>Oracle: Execute SQL (bind variables)
Oracle-->>clsUser: Result set / row count
clsUser-->>Caller: Populated object / persisted state
Design constraints¶
- Targets Oracle exclusively; no other database provider evidence was found.*
- No security/authorization framework (
ISecurityManager,PrincipalContext, AD) interaction was detected; theIsAuthorizedUserflag is a persisted data property only, not an enforcement mechanism — enforcement is presumed to occur in a calling application layer.* - No configuration framework (
IEnvironmentService,ConfigurationManager.AppSettings,DbConnectionManager) interaction was detected. - Dependencies are resolved entirely as NuGet package references per the
.nuspec; no local<ProjectReference>s were found.*
Related documentation¶
- Index
- Overview
- Dependencies
- Operations and processes
- Business rules
- Database tables
- SQL catalog
- API reference
- Configuration
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.
Sources¶
Business\SAIF.Business.External.Users\clsUser.vbBusiness\SAIF.Business.External.Users\clsAuditor.vbBusiness\SAIF.Business.External.Users\clsAuditorCollection.vbBusiness\SAIF.Business.External.Users\clsAuditAssignmentOverride.vbBusiness\SAIF.Business.External.Users\clsAuditorZipCode.vbBusiness\SAIF.Business.External.Users\clsAuditorZipCodeCollection.vbBusiness\SAIF.Business.External.Users\clsUserAccessGroup.vbBusiness\SAIF.Business.External.Users\clsUserDenySelfRegistration.vbBusiness\SAIF.Business.External.Users\clsUserSecurityQuestion.vbBusiness\SAIF.Business.External.Users\clsUserType.vbBusiness\SAIF.Business.External.Users\clsZipCode.vbBusiness\SAIF.Business.External.Users\mdlAuditor.vbBusiness\SAIF.Business.External.Users\mdlCodeMaps.vbBusiness\SAIF.Business.External.Users\mdlExtensions.vbBusiness\SAIF.Business.External.Users\mdlGroupAssociation.vbBusiness\SAIF.Business.External.Users\SAIF.BOF.Business.External.Users.nuspec