Velox Web Knowledge Map
This repository is the older ASP.NET Core MVC portal for Velox/VxData. It contains a layered solution with common infrastructure, EF Core data access, services, external address providers, MVC areas/views/controllers, and tests.
Complexity is estimated from code volume, coupling to VxData/VxConfig, authentication impact, UI surface area, and integration risk. When behavior is not clear from the repository files alone, it is marked as unclear.
Web Host, Startup, and Routing
Purpose:
- Boots the MVC web portal, registers dependencies, configures middleware, and maps routes.
- Establishes session, authentication, controllers, Razor views, Swagger, static files, and area routing.
Main classes:
Program- Legacy/root
StartupandProgramfiles exist outsidevelox.web; their current runtime role is unclear. PortalModuleAppInitFilter
Dependencies:
- ASP.NET Core MVC.
- Razor views.
- Swagger/OpenAPI packages.
- Dependency injection modules from
velox.common,velox.data,velox.service, and external provider projects.
Important entry points:
velox.web\Program.csvelox.web\velox.web.csprojvelox.web.sln- MVC routes configured in startup.
Important configuration:
velox.web\appsettings.jsonvelox.web\appsettings.Development.jsonvelox.web\Properties\launchSettings.json- Session/authentication/cookie settings in startup.
Related documentation:
architecture.mdREADME.md
Estimated complexity: Medium
Portal MVC Areas and Views
Purpose:
- Provides user-facing portal screens for transactions, administration, dashboard, identity/account flows, OAuth, flow/API interactions, and shared components.
- Uses controllers and Razor views to expose VxData objects and Velox process state.
Main classes:
- Controllers under
velox.web\Areas\Administration\Controllers - Controllers under
velox.web\Areas\Api\Controllers - Controllers under identity/OAuth/dashboard/transaction areas.
- Razor views under
velox.web\Areas\*\Viewsand shared components.
Dependencies:
- Service layer in
velox.service. - DevExtreme UI conventions and static assets.
- ASP.NET Core MVC/Razor.
- Authentication and request context.
Important entry points:
velox.web\Areas\Administration\Controllers\HomeController.csvelox.web\Areas\Administration\Controllers\*\*Controller.csvelox.web\Areas\Administration\Controllers\*\*ApiController.csvelox.web\Views\Shared- Area route registrations in
Program.cs.
Important configuration:
- Layout and app configuration sections.
- Route area names and controller/action naming.
- UI behavior in JavaScript/CSS assets under
wwwroot.
Related documentation:
architecture.mdPOSTING DEVEXTREME FORM WITH AJAX.txtright click menu.txtIdentity.txt
Estimated complexity: High
Data Access and EF Core Contexts
Purpose:
- Maps VxData and Velox configuration databases into EF Core contexts and entity models.
- Provides the persistence foundation for repositories, services, identity, and portal UI.
Main classes:
VxDataContextVxConfigContextBaseDbContextBaseIdentityDbContext- Entity classes under
velox.data\Models - Identity classes under
velox.data\IdentityModels
Dependencies:
- Entity Framework Core.
- SQL Server.
- VxData schema from
velox-data. - Velox configuration database schema from
velox. - AutoMapper profiles in data infrastructure.
Important entry points:
velox.data\Context\VxDataContext.csvelox.data\Context\VxConfigContext.csvelox.data\Context\VxDataContextPartial.csvelox.data\Infrastructure\DataModule.csvelox.data\EntityFrameWorkDBBuild.txtvelox.data\IdentityFrameWorkDBBuild.txt
Important configuration:
ConnectionStringsin appsettings.- EF model mappings and partial context extensions.
- The exact scaffold/regeneration process is partly documented in text files but should be confirmed before changing models.
Related documentation:
architecture.mdvelox.data\EntityFrameWorkDBBuild.txtvelox.data\IdentityFrameWorkDBBuild.txt..\velox-data\KNOWLEDGE_MAP.md
Estimated complexity: High
Repository Layer
Purpose:
- Encapsulates EF data access and DevExtreme-compatible query/update behavior.
- Separates VxData repositories from Velox configuration repositories.
Main classes:
RepositoryBaseRepositoryIdentityBaseVeloxRepositoryBaseDataVeloxRepositoryBaseConfigDevExtremeRepositoryBaseDevExtremeRepositoryBaseGenericDevExtremeRepositoryBaseConfig- Domain repositories under
velox.data\Repositories
Dependencies:
- EF Core contexts.
- DevExtreme data loading/update patterns.
- Request/user context.
- Domain model classes and data models.
Important entry points:
velox.common\Repositories\RepositoryBase.csvelox.data\Repositories\VeloxRepositoryBaseData.csvelox.data\Repositories\VeloxRepositoryBaseConfig.csvelox.data\Repositories\Numvelox.data\Repositories\Genericvelox.data\Repositories\VeloxConfig
Important configuration:
- DI registrations in
DataModule. - Repository lifetimes.
- Model-to-entity mapping rules.
Related documentation:
architecture.md- Repository tests under
velox.web.test\RepositoryTest
Estimated complexity: High
Service and Business Layer
Purpose:
- Provides application services over repositories for portal screens, APIs, account management, email, Velox API calls, webhook processing, and domain operations.
- Implements reusable business operations outside controllers.
Main classes:
ServiceModuleBaseDevExtremeServiceBaseDevExtremeServiceGenericBaseDevExtremeServiceConfig- Domain services under
velox.service\Services\Num,Generic,VeloxConfig, andOther. EmailServiceAccountServiceVeloxApiServiceVeloxFlowService
Dependencies:
- Repository layer.
- AutoMapper.
- MailKit/email configuration.
- HTTP calls to VeloxAPIService.
- Request/user context.
Important entry points:
velox.service\Infrastructure\ServiceModule.csvelox.service\Services\Numvelox.service\Services\Genericvelox.service\Services\VeloxConfigvelox.service\Services\Other
Important configuration:
EmailConfigAppConfig- Velox API host/port settings.
- DI service lifetimes in
ServiceModule.
Related documentation:
architecture.md- Service tests under
velox.web.test
Estimated complexity: High
Dependency Injection and Configuration Modules
Purpose:
- Organizes service registration into modules so each project can register its own dependencies and configuration.
- Binds appsettings sections to strongly typed config classes.
Main classes:
IServiceCollectionModuleServiceCollectionExtensionsConfigurationModuleDataModuleServiceModulePortalModuleAddressFinderModuleGoogleAddressModule
Dependencies:
- ASP.NET Core dependency injection.
Microsoft.Extensions.Configuration.- Project assembly scanning or module registration helpers.
Important entry points:
velox.common\Extensions\ServiceCollectionExtensions.csvelox.common\Extensions\ConfigurationModule.csvelox.data\Infrastructure\DataModule.csvelox.service\Infrastructure\ServiceModule.csvelox.web\Infrastructure\PortalModule.cs
Important configuration:
ConnectionStringsEmailConfigCacheConfigAddressFinderConfigGoogleAddressConfigAppConfigLayoutConfig
Related documentation:
architecture.md
Estimated complexity: Medium
Authentication, Authorization, and Request Context
Purpose:
- Handles identity, login/account operations, claims transformation, user/party access, and request-scoped authorization context.
- Restricts access to data and portal functions by user identity and allowed parties.
Main classes:
PortalUserPortalRoleAddUserClaimsTransformationIRequestContextAccountServiceAccountApiController- Login/account controllers.
Dependencies:
- ASP.NET Core Identity.
- EF Identity tables in VxData.
- ClaimsPrincipal extensions.
- User/party data services and repositories.
Important entry points:
velox.data\Transformation\AddUserClaimsTransformation.csvelox.common\Context\IRequestContext.csvelox.web\Areas\Administration\Controllers\AccountApiController.cs- Identity/OAuth area controllers.
Important configuration:
- Identity database connection.
- Authentication cookie/session settings.
- User-party relationships.
- OAuth callback behavior is present, but complete production flow is unclear from repository files alone.
Related documentation:
architecture.mdIdentity.txt
Estimated complexity: High
Webhook and API Endpoints
Purpose:
- Exposes API endpoints for transactions, uploads, webhooks, and portal/API interactions.
- Bridges external requests into VxData services.
Main classes:
- API area controllers under
velox.web\Areas\Api\Controllers WebHookServiceWebHookFileServiceWebHookRepositoryWebHookFileRepository
Dependencies:
- ASP.NET Core MVC/Web API.
- Service layer.
- VxData webhook/upload tables.
- Authentication/authorization and request context.
Important entry points:
velox.web\Areas\Api\Controllersvelox.service\Services\Num\WebHookService.csvelox.service\Services\Num\WebHookFileService.csvelox.data\Repositories\Num\WebHookRepository.cs
Important configuration:
- Routing and authentication policy.
- Webhook table configuration.
- Exact external authentication and retry semantics are unclear from this repository alone.
Related documentation:
architecture.md..\velox-data\KNOWLEDGE_MAP.md
Estimated complexity: Medium
Velox Flow and API Bridge
Purpose:
- Integrates the web portal with Velox flow execution and VeloxAPIService.
- Provides services for listing/triggering flows and calling the Delphi API service.
Main classes:
VeloxApiServiceVeloxFlowServiceVxActionServiceVxLogService- Velox config repositories/data models under
velox.data\DataModels\VeloxConfig.
Dependencies:
- Velox configuration database.
- Running VeloxAPIService.
- VxAction/VxLog/VxFlow schema.
- HTTP client/runtime configuration.
Important entry points:
velox.service\Services\Other\VeloxApiService.csvelox.service\Services\Num\VeloxFlowService.csvelox.service\Services\VeloxConfig\VxActionService.csvelox.service\Services\VeloxConfig\VxLogService.cs
Important configuration:
- Velox API host and port settings.
- Connection strings for Velox config.
- Flow/action IDs from database configuration.
Related documentation:
architecture.md..\velox\KNOWLEDGE_MAP.md..\velox-web2\KNOWLEDGE_MAP.md
Estimated complexity: Medium
External Providers, Email, Cache, and Utilities
Purpose:
- Provides address lookup integrations, email sending, cache helpers, MIME/file helpers, validation, enums, and shared utility models.
- Supports portal UX and service behavior without embedding provider-specific logic in controllers.
Main classes:
AddressFinderServiceGoogleAddressServiceEmailServiceCacheConfigFileHelpersMimeTypeMap- Validation classes under
velox.data\Validation.
Dependencies:
- AddressFinder and Google Address APIs.
- MailKit.
- Application configuration.
- Shared models and enums.
Important entry points:
velox.external.addressfindervelox.external.googleaddressvelox.common\Helpersvelox.common\Configvelox.data\Validation
Important configuration:
AddressFinderConfigGoogleAddressConfigEmailConfigCacheConfig- Provider keys/secrets should not be documented verbatim.
Related documentation:
architecture.mdvelox.external.googleaddress\Parsing google address components.txt
Estimated complexity: Medium
Tests and Legacy Reference Material
Purpose:
- Provides unit/integration tests for repositories, services, external providers, and pipelines.
- Keeps old or exploratory code snippets under
zUnneeded Codefor reference.
Main classes:
- Test classes under
velox.web.test. FindSuburbNumPipelineand related pipeline tests.- Reference snippets under
zUnneeded Code.
Dependencies:
- Test framework from project packages.
- EF/database test setup, exact isolation strategy unclear.
- External provider test configuration for address services.
Important entry points:
velox.web.test\velox.web.test.csprojvelox.web.test\WebModulesTest.csvelox.web.test\RepositoryTestvelox.web.test\PipelineTestszUnneeded Code
Important configuration:
- Test connection strings and provider credentials are unclear from repository files alone.
- Legacy snippets should not be treated as active runtime code without verification.
Related documentation:
architecture.mdzUnneeded Code\Readme.txt
Estimated complexity: Medium