Fix build and code structure improvements. New but essential UI functionality. CI improvements. Documentation improvements. AI module improvements.

This commit is contained in:
StellaOps Bot
2025-12-26 21:54:17 +02:00
parent 335ff7da16
commit c2b9cd8d1f
3717 changed files with 264714 additions and 48202 deletions

View File

@@ -9,10 +9,10 @@
<RootNamespace>StellaOps.VexHub.Core</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
<PackageReference Include="Microsoft.Extensions.Options" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Excititor\__Libraries\StellaOps.Excititor.Core\StellaOps.Excititor.Core.csproj" />

View File

@@ -0,0 +1,21 @@
using Microsoft.EntityFrameworkCore;
namespace StellaOps.VexHub.Persistence.EfCore.Context;
/// <summary>
/// EF Core DbContext for VexHub module.
/// This is a stub that will be scaffolded from the PostgreSQL database.
/// </summary>
public class VexHubDbContext : DbContext
{
public VexHubDbContext(DbContextOptions<VexHubDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("vexhub");
base.OnModelCreating(modelBuilder);
}
}

View File

@@ -0,0 +1,46 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using StellaOps.Infrastructure.Postgres.Options;
using StellaOps.VexHub.Core;
using StellaOps.VexHub.Persistence.Postgres;
using StellaOps.VexHub.Persistence.Postgres.Repositories;
namespace StellaOps.VexHub.Persistence.Extensions;
/// <summary>
/// Service collection extensions for VexHub persistence.
/// </summary>
public static class VexHubPersistenceExtensions
{
/// <summary>
/// Adds VexHub PostgreSQL persistence services to the service collection.
/// </summary>
public static IServiceCollection AddVexHubPersistence(
this IServiceCollection services,
IConfiguration configuration)
{
services.Configure<PostgresOptions>(configuration.GetSection("Postgres"));
services.AddSingleton<VexHubDataSource>();
services.AddScoped<IVexStatementRepository, PostgresVexStatementRepository>();
services.AddScoped<IVexProvenanceRepository, PostgresVexProvenanceRepository>();
return services;
}
/// <summary>
/// Adds VexHub PostgreSQL persistence services with explicit options.
/// </summary>
public static IServiceCollection AddVexHubPersistence(
this IServiceCollection services,
Action<PostgresOptions> configureOptions)
{
services.Configure(configureOptions);
services.AddSingleton<VexHubDataSource>();
services.AddScoped<IVexStatementRepository, PostgresVexStatementRepository>();
services.AddScoped<IVexProvenanceRepository, PostgresVexProvenanceRepository>();
return services;
}
}

View File

@@ -1,4 +1,4 @@
namespace StellaOps.VexHub.Storage.Postgres.Models;
namespace StellaOps.VexHub.Persistence.Postgres.Models;
/// <summary>
/// Database entity for VEX conflicts.

View File

@@ -1,4 +1,4 @@
namespace StellaOps.VexHub.Storage.Postgres.Models;
namespace StellaOps.VexHub.Persistence.Postgres.Models;
/// <summary>
/// Database entity for VEX ingestion jobs.

View File

@@ -1,4 +1,4 @@
namespace StellaOps.VexHub.Storage.Postgres.Models;
namespace StellaOps.VexHub.Persistence.Postgres.Models;
/// <summary>
/// Database entity for VEX provenance.

View File

@@ -1,4 +1,4 @@
namespace StellaOps.VexHub.Storage.Postgres.Models;
namespace StellaOps.VexHub.Persistence.Postgres.Models;
/// <summary>
/// Database entity for VEX sources.

View File

@@ -1,4 +1,4 @@
namespace StellaOps.VexHub.Storage.Postgres.Models;
namespace StellaOps.VexHub.Persistence.Postgres.Models;
/// <summary>
/// Database entity for aggregated VEX statements.

View File

@@ -3,9 +3,9 @@ using Dapper;
using Microsoft.Extensions.Logging;
using StellaOps.VexHub.Core;
using StellaOps.VexHub.Core.Models;
using StellaOps.VexHub.Storage.Postgres.Models;
using StellaOps.VexHub.Persistence.Postgres.Models;
namespace StellaOps.VexHub.Storage.Postgres.Repositories;
namespace StellaOps.VexHub.Persistence.Postgres.Repositories;
/// <summary>
/// PostgreSQL implementation of the VEX provenance repository.

View File

@@ -3,10 +3,10 @@ using Dapper;
using Microsoft.Extensions.Logging;
using StellaOps.VexHub.Core;
using StellaOps.VexHub.Core.Models;
using StellaOps.VexHub.Storage.Postgres.Models;
using StellaOps.VexHub.Persistence.Postgres.Models;
using StellaOps.VexLens.Models;
namespace StellaOps.VexHub.Storage.Postgres.Repositories;
namespace StellaOps.VexHub.Persistence.Postgres.Repositories;
/// <summary>
/// PostgreSQL implementation of the VEX statement repository.

View File

@@ -4,7 +4,7 @@ using Npgsql;
using StellaOps.Infrastructure.Postgres.Connections;
using StellaOps.Infrastructure.Postgres.Options;
namespace StellaOps.VexHub.Storage.Postgres;
namespace StellaOps.VexHub.Persistence.Postgres;
/// <summary>
/// PostgreSQL data source for the VexHub module.

View File

@@ -6,17 +6,29 @@
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<RootNamespace>StellaOps.VexHub.Storage.Postgres</RootNamespace>
<RootNamespace>StellaOps.VexHub.Persistence</RootNamespace>
<AssemblyName>StellaOps.VexHub.Persistence</AssemblyName>
<Description>Consolidated persistence layer for StellaOps VexHub module</Description>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapper" Version="2.1.35" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
<PackageReference Include="Dapper" />
<PackageReference Include="Microsoft.EntityFrameworkCore" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" PrivateAssets="all" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
<PackageReference Include="Npgsql" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Migrations\**\*.sql" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\__Libraries\StellaOps.Infrastructure.Postgres\StellaOps.Infrastructure.Postgres.csproj" />
<ProjectReference Include="..\..\..\__Libraries\StellaOps.Infrastructure.EfCore\StellaOps.Infrastructure.EfCore.csproj" />
<ProjectReference Include="..\..\..\__Libraries\StellaOps.DependencyInjection\StellaOps.DependencyInjection.csproj" />
<ProjectReference Include="..\StellaOps.VexHub.Core\StellaOps.VexHub.Core.csproj" />
</ItemGroup>

View File

@@ -1,29 +0,0 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using StellaOps.Infrastructure.Postgres.Options;
using StellaOps.VexHub.Core;
using StellaOps.VexHub.Storage.Postgres.Repositories;
namespace StellaOps.VexHub.Storage.Postgres.Extensions;
/// <summary>
/// Service collection extensions for VexHub PostgreSQL storage.
/// </summary>
public static class VexHubPostgresServiceCollectionExtensions
{
/// <summary>
/// Adds VexHub PostgreSQL storage services to the service collection.
/// </summary>
public static IServiceCollection AddVexHubPostgres(
this IServiceCollection services,
IConfiguration configuration)
{
services.Configure<PostgresOptions>(configuration.GetSection("Postgres"));
services.AddSingleton<VexHubDataSource>();
services.AddScoped<IVexStatementRepository, PostgresVexStatementRepository>();
services.AddScoped<IVexProvenanceRepository, PostgresVexProvenanceRepository>();
return services;
}
}