Skip to main content

Velox Web2 Knowledge Map

This repository is the newer .NET solution around Velox API access. It contains an Aspire AppHost, shared service defaults, an ASP.NET Core API service that reads Velox/VxData configuration and proxies to VeloxAPIService, and a Blazor web scaffold.

Complexity is estimated from runtime coupling, database breadth, proxy/security behavior, OpenAPI surface, observability, and deployment risk. When behavior is not clear from the repository files alone, it is marked as unclear.

Aspire AppHost

Purpose:

  • Provides the .NET Aspire orchestration entry point for local development.
  • Wires the API service and Blazor web project together for a composed run experience.

Main classes:

  • AppHost

Dependencies:

  • .NET Aspire hosting packages.
  • Velox.ApiService
  • Velox.Web
  • Velox.ServiceDefaults

Important entry points:

  • Velox.AppHost\AppHost.cs
  • Velox.AppHost\Velox.AppHost.csproj
  • Velox.AppHost\Properties\launchSettings.json

Important configuration:

  • Velox.AppHost\appsettings.json
  • Velox.AppHost\appsettings.Development.json
  • Aspire dashboard/runtime configuration.

Related documentation:

  • architecture.md
  • Docker Compose.txt
  • Installed Packages.txt

Estimated complexity: Low

Shared Service Defaults

Purpose:

  • Centralizes cross-cutting service configuration for ASP.NET Core projects.
  • Adds OpenTelemetry, health checks, service discovery, resilience, and helper utilities.

Main classes:

  • Extensions
  • UrlHelpers
  • FileHelpers

Dependencies:

  • ASP.NET Core.
  • OpenTelemetry.
  • Microsoft service discovery and resilience libraries.
  • Health check infrastructure.

Important entry points:

  • Velox.ServiceDefaults\Extensions.cs
  • Velox.ServiceDefaults\Tools\UrlHelpers.cs
  • Velox.ServiceDefaults\Tools\FileHelpers.cs

Important configuration:

  • OTEL_EXPORTER_OTLP_ENDPOINT
  • Service discovery/resilience defaults.
  • Health check endpoints mapped by service startup.

Related documentation:

  • architecture.md
  • Velox.ServiceDefaults\Velox.ServiceDefaults.csproj

Estimated complexity: Medium

API Service Startup and Dynamic API Surface

Purpose:

  • Hosts the public API/documentation service.
  • Configures EF contexts, OpenAPI, Scalar/Swagger static assets, logging, CORS, and dynamic routes from Velox API configuration.

Main classes:

  • Program
  • Api
  • ApiAction
  • Setup

Dependencies:

  • ASP.NET Core minimal APIs.
  • Entity Framework Core.
  • SQL Server.
  • Scalar/Swagger/OpenAPI packages.
  • Static assets under Velox.ApiService\wwwroot.

Important entry points:

  • Velox.ApiService\Program.cs
  • Velox.ApiService\Velox.ApiService.csproj
  • Velox.ApiService\wwwroot\index.html
  • Velox.ApiService\wwwroot\indexPlain.html

Important configuration:

  • Velox.ApiService\appsettings.json
  • Velox.ApiService\appsettings.Development.json
  • ConnectionStrings:VxConfig
  • ConnectionStrings:VxData
  • API route definitions loaded from configuration database tables.

Related documentation:

  • architecture.md
  • Velox.ApiService\EntityFrameWorkDBBuild.txt

Estimated complexity: High

Velox API Proxy Endpoint and User Resolution

Purpose:

  • Proxies API requests from the .NET API service to the Delphi VeloxAPIService.
  • Resolves users and authorizes/identifies requests using bearer token data and user headers.

Main classes:

  • ProxyEndpoint
  • UserService
  • User

Dependencies:

  • ASP.NET Core request pipeline.
  • HttpClient.
  • VeloxAPIService runtime.
  • VxData users.
  • Velox API configuration records.

Important entry points:

  • Velox.ApiService\Endpoints\VeloxAPI.cs
  • Velox.ApiService\Service\UserService.cs
  • Dynamic endpoint mapping in Program.cs

Important configuration:

  • Bearer token/API key values from the configuration database.
  • User identification headers such as X-UserNum.
  • Target VeloxAPIService host/port from database setup/configuration.
  • Full security model should be reviewed before production changes; some behavior is inferred from code layout.

Related documentation:

  • architecture.md
  • ..\velox\KNOWLEDGE_MAP.md

Estimated complexity: High

EF Contexts and Database Models

Purpose:

  • Maps Velox configuration database tables and VxData tables into EF Core models.
  • Supplies the API service with configuration, route, user, setup, and data-platform entities.

Main classes:

  • VxConfigContext
  • VxDataContext
  • Model classes under Velox.ApiService\ModelConfig
  • Model classes under Velox.ApiService\ModelData
  • API DTO/domain classes under Velox.ApiService\Model

Dependencies:

  • Entity Framework Core SQL Server provider.
  • Velox configuration database.
  • VxData database.
  • Schema definitions from velox and velox-data.

Important entry points:

  • Velox.ApiService\DBContext\VxConfigContext.cs
  • Velox.ApiService\DBContext\VxDataContext.cs
  • Velox.ApiService\ModelConfig
  • Velox.ApiService\ModelData
  • Velox.ApiService\Model

Important configuration:

  • ConnectionStrings:VxConfig
  • ConnectionStrings:VxData
  • EF scaffold/build notes in EntityFrameWorkDBBuild.txt.
  • Regeneration rules for scaffolded models are unclear and should be confirmed before editing model files manually.

Related documentation:

  • architecture.md
  • Velox.ApiService\EntityFrameWorkDBBuild.txt
  • ..\velox-data\KNOWLEDGE_MAP.md

Estimated complexity: High

OpenAPI, Scalar, Swagger, and Static API Assets

Purpose:

  • Provides interactive API documentation and branded static pages for API consumers.
  • Hosts Scalar/Swagger config, OpenAPI-related files, images, and landing pages.

Main classes:

  • No primary C# classes in this subsystem; startup registration lives in Program.
  • Main artifacts are static HTML, CSS, JavaScript, SVG, and image assets.

Dependencies:

  • ASP.NET Core static file middleware.
  • Scalar/OpenAPI packages.
  • Dynamic API metadata produced by the API service.

Important entry points:

  • Velox.ApiService\wwwroot\index.html
  • Velox.ApiService\wwwroot\indexPlain.html
  • Velox.ApiService\wwwroot\scalarconfig\config.js
  • Velox.ApiService\wwwroot\swaggerconfig\brand.js
  • Velox.ApiService\wwwroot\swaggerconfig\style.css

Important configuration:

  • Static config files under wwwroot\scalarconfig and wwwroot\swaggerconfig.
  • OpenAPI route/path configuration in Program.cs.

Related documentation:

  • architecture.md

Estimated complexity: Medium

Logging and Observability

Purpose:

  • Configures application logging, optional Windows Event Log behavior, health checks, and telemetry.
  • Supports troubleshooting for API service and Aspire-hosted local runs.

Main classes:

  • LoggingExtension
  • Extensions in ServiceDefaults

Dependencies:

  • Microsoft.Extensions.Logging.
  • Windows Event Log provider where enabled.
  • OpenTelemetry.
  • Aspire dashboard/OTLP endpoint.

Important entry points:

  • Velox.ApiService\Service\LoggingExtension.cs
  • Velox.ServiceDefaults\Extensions.cs
  • Service startup in Velox.ApiService\Program.cs

Important configuration:

  • Logging settings in appsettings.
  • OTEL_EXPORTER_OTLP_ENDPOINT
  • Environment-specific log providers.

Related documentation:

  • architecture.md

Estimated complexity: Medium

Blazor Web Scaffold

Purpose:

  • Provides a Blazor web frontend scaffold that currently appears to be sample/template-style UI.
  • Consumes the API service through a generated/simple weather client in the default template.

Main classes:

  • Program
  • WeatherApiClient
  • Razor components under Velox.Web\Components
  • MainLayout
  • NavMenu

Dependencies:

  • ASP.NET Core Blazor.
  • Velox.ServiceDefaults.
  • Velox.ApiService when running in composed mode.

Important entry points:

  • Velox.Web\Program.cs
  • Velox.Web\Components\App.razor
  • Velox.Web\Components\Routes.razor
  • Velox.Web\Components\Pages\Home.razor
  • Velox.Web\Components\Pages\Weather.razor

Important configuration:

  • Velox.Web\appsettings.json
  • Velox.Web\appsettings.Development.json
  • Velox.Web\Properties\launchSettings.json
  • Production role of this frontend is unclear from repository files alone.

Related documentation:

  • architecture.md

Estimated complexity: Low

Deployment and Environment Notes

Purpose:

  • Captures package, Docker, and local environment notes for building/deploying the solution.
  • Gives developers breadcrumbs for installed packages and container deployment.

Main classes:

  • No runtime classes.
  • Main artifacts are text notes and project files.

Dependencies:

  • .NET SDK.
  • Docker/Docker Compose if using compose notes.
  • NuGet packages listed in project files and notes.
  • SQL Server and VeloxAPIService for meaningful API execution.

Important entry points:

  • Velox.sln
  • Docker Compose.txt
  • Installed Packages.txt
  • Project .csproj files.

Important configuration:

  • Appsettings across AppHost/API/Web projects.
  • Launch profiles.
  • Deployment-specific connection strings and credentials should be supplied securely and not copied into docs.

Related documentation:

  • architecture.md
  • Docker Compose.txt
  • Installed Packages.txt

Estimated complexity: Medium