51 lines
2.5 KiB
C#
51 lines
2.5 KiB
C#
using Core.Blueprint.Common.DependencyInjection;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
|
using Thalos.Domain.Decisions;
|
|
using Thalos.DAL.DependencyInjection;
|
|
using Thalos.Service.Application.Adapters;
|
|
using Thalos.Service.Application.Oidc;
|
|
using Thalos.Service.Application.Ports;
|
|
using Thalos.Service.Application.Secrets;
|
|
using Thalos.Service.Application.Sessions;
|
|
using Thalos.Service.Application.UseCases;
|
|
|
|
namespace Thalos.Service.Application.DependencyInjection;
|
|
|
|
/// <summary>
|
|
/// Registers thalos-service runtime orchestration and DAL adapters.
|
|
/// </summary>
|
|
public static class ThalosServiceRuntimeServiceCollectionExtensions
|
|
{
|
|
/// <summary>
|
|
/// Adds thalos-service runtime wiring aligned with blueprint runtime and thalos-dal runtime.
|
|
/// </summary>
|
|
/// <param name="services">Service collection.</param>
|
|
/// <returns>Service collection for fluent chaining.</returns>
|
|
public static IServiceCollection AddThalosServiceRuntime(this IServiceCollection services)
|
|
{
|
|
services.AddBlueprintRuntimeCore();
|
|
services.AddThalosDalRuntime();
|
|
services.TryAddSingleton<IConfiguration>(_ =>
|
|
new ConfigurationBuilder().AddInMemoryCollection().Build());
|
|
services.TryAddSingleton<IIdentityPolicyDecisionService, IdentityPolicyDecisionService>();
|
|
services.TryAddSingleton<IIdentityTokenDecisionService, IdentityTokenDecisionService>();
|
|
|
|
services.TryAddSingleton<IIdentityPolicyGrpcContractAdapter, IdentityPolicyGrpcContractAdapter>();
|
|
services.TryAddSingleton<IIdentitySecretMaterialProvider, ConfigurationIdentitySecretMaterialProvider>();
|
|
services.TryAddSingleton<IIdentityProviderTokenExchangeService, GoogleIdentityProviderTokenExchangeService>();
|
|
services.TryAddSingleton<IIdentitySessionTokenCodec, HmacIdentitySessionTokenCodec>();
|
|
|
|
services.TryAddSingleton<IIdentityTokenReadPort, IdentityTokenReadPortDalAdapter>();
|
|
services.TryAddSingleton<IIdentityPolicyContextReadPort, IdentityPolicyContextReadPortDalAdapter>();
|
|
|
|
services.TryAddSingleton<IIssueIdentityTokenUseCase, IssueIdentityTokenUseCase>();
|
|
services.TryAddSingleton<IStartIdentitySessionUseCase, StartIdentitySessionUseCase>();
|
|
services.TryAddSingleton<IRefreshIdentitySessionUseCase, RefreshIdentitySessionUseCase>();
|
|
services.TryAddSingleton<IEvaluateIdentityPolicyUseCase, EvaluateIdentityPolicyUseCase>();
|
|
|
|
return services;
|
|
}
|
|
}
|