- Added `FilesystemPackRunProvenanceWriter` to write provenance manifests to the filesystem. - Introduced `MongoPackRunArtifactReader` to read artifacts from MongoDB. - Created `MongoPackRunProvenanceWriter` to store provenance manifests in MongoDB. - Developed unit tests for filesystem and MongoDB provenance writers. - Established `ITimelineEventStore` and `ITimelineIngestionService` interfaces for timeline event handling. - Implemented `TimelineIngestionService` to validate and persist timeline events with hashing. - Created PostgreSQL schema and migration scripts for timeline indexing. - Added dependency injection support for timeline indexer services. - Developed tests for timeline ingestion and schema validation.
33 lines
1021 B
C#
33 lines
1021 B
C#
using Microsoft.Extensions.Logging;
|
|
using Microsoft.Extensions.Options;
|
|
using StellaOps.Infrastructure.Postgres.Connections;
|
|
using StellaOps.Infrastructure.Postgres.Options;
|
|
|
|
namespace StellaOps.TimelineIndexer.Infrastructure;
|
|
|
|
/// <summary>
|
|
/// PostgreSQL data source for the Timeline Indexer module.
|
|
/// Sets the default schema and carries tenant context via app.current_tenant.
|
|
/// </summary>
|
|
public sealed class TimelineIndexerDataSource : DataSourceBase
|
|
{
|
|
public const string DefaultSchemaName = "timeline";
|
|
|
|
public TimelineIndexerDataSource(IOptions<PostgresOptions> options, ILogger<TimelineIndexerDataSource> logger)
|
|
: base(EnsureSchema(options.Value), logger)
|
|
{
|
|
}
|
|
|
|
protected override string ModuleName => "TimelineIndexer";
|
|
|
|
private static PostgresOptions EnsureSchema(PostgresOptions baseOptions)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(baseOptions.SchemaName))
|
|
{
|
|
baseOptions.SchemaName = DefaultSchemaName;
|
|
}
|
|
|
|
return baseOptions;
|
|
}
|
|
}
|