[FA-55] User Service backend initial setup
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
using System.Net.Http.Headers;
|
||||
using FictionArchive.Common.Extensions;
|
||||
using FictionArchive.Service.Shared;
|
||||
using FictionArchive.Service.Shared.Extensions;
|
||||
using FictionArchive.Service.Shared.Services.EventBus.Implementations;
|
||||
using FictionArchive.Service.UserService.GraphQL;
|
||||
using FictionArchive.Service.UserService.Models.IntegrationEvents;
|
||||
using FictionArchive.Service.UserService.Services;
|
||||
using FictionArchive.Service.UserService.Services.EventHandlers;
|
||||
using FictionArchive.Service.UserService.Services.AuthenticationClient;
|
||||
using FictionArchive.Service.UserService.Services.AuthenticationClient.Authentik;
|
||||
|
||||
namespace FictionArchive.Service.UserService;
|
||||
|
||||
@@ -25,19 +26,34 @@ public class Program
|
||||
builder.Services.AddRabbitMQ(opt =>
|
||||
{
|
||||
builder.Configuration.GetSection("RabbitMQ").Bind(opt);
|
||||
})
|
||||
.Subscribe<AuthUserAddedEvent, AuthUserAddedEventHandler>();
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region GraphQL
|
||||
|
||||
|
||||
builder.Services.AddDefaultGraphQl<Query, Mutation>()
|
||||
.AddAuthorization();
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Authentik Client
|
||||
|
||||
builder.Services.Configure<AuthentikConfiguration>(
|
||||
builder.Configuration.GetSection("Authentik"));
|
||||
|
||||
var authentikConfig = builder.Configuration.GetSection("Authentik").Get<AuthentikConfiguration>();
|
||||
builder.Services.AddHttpClient<IAuthenticationServiceClient, AuthentikClient>(client =>
|
||||
{
|
||||
client.BaseAddress = new Uri(authentikConfig?.BaseUrl ?? "https://localhost");
|
||||
client.DefaultRequestHeaders.Authorization =
|
||||
new AuthenticationHeaderValue("Bearer", authentikConfig?.ApiToken ?? "");
|
||||
})
|
||||
.AddStandardResilienceHandler();
|
||||
|
||||
#endregion
|
||||
|
||||
builder.Services.RegisterDbContext<UserServiceDbContext>(
|
||||
builder.Configuration.GetConnectionString("DefaultConnection"),
|
||||
skipInfrastructure: isSchemaExport);
|
||||
|
||||
Reference in New Issue
Block a user