diff --git a/.env b/.env index b9d3e692e..5d1c55132 100644 --- a/.env +++ b/.env @@ -6,6 +6,7 @@ ARCHIVAL_GIT_REPOSITORY_PATH=archives ARCHIVAL_GIT_USER_NAME=FilterLists Archival ARCHIVAL_GIT_USER_EMAIL=noreply@filterlists.com +DIRECTORY_HOST=directory-api DIRECTORY_APPLICATION_INSIGHTS_INSTRUMENTATION_KEY= DIRECTORY_CONNECTION_STRING=Server=directory-db;Database=filterlists;User Id=filterlists;Password=filterlists; DIRECTORY_DB_USER=filterlists diff --git a/docker-compose.yml b/docker-compose.yml index 70f06aafa..fc1cf0d66 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,6 +27,7 @@ services: ApplicationInsights__ServerTelemetryChannelStoragePath: ${APPLICATION_INSIGHTS_SERVER_TELEMETRY_CHANNEL_STORAGE_PATH} ApplicationInsights__InstrumentationKey: ${ARCHIVAL_APPLICATION_INSIGHTS_INSTRUMENTATION_KEY} ConnectionStrings__SchedulingConnection: ${ARCHIVAL_REDIS_CONNECTION_STRING} + Api__DirectoryHost: ${DIRECTORY_HOST} Git__RepositoryPath: ${ARCHIVAL_GIT_REPOSITORY_PATH} Git__UserName: ${ARCHIVAL_GIT_USER_NAME} Git__UserEmail: ${ARCHIVAL_GIT_USER_EMAIL} @@ -44,8 +45,10 @@ services: image: ghcr.io/collinbarrett/filterlists-directory-api restart: always networks: - - reverse-proxy - - directory + reverse-proxy: + aliases: + - ${DIRECTORY_HOST} + directory: depends_on: - directory-db volumes: diff --git a/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs b/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs index 0a5b68492..a20ec9d45 100644 --- a/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs +++ b/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs @@ -23,7 +23,7 @@ public static void AddInfrastructureServices(this IServiceCollection services, I services.AddSharedKernelLogging(configuration); services.AddSchedulingServices(configuration); - services.AddApiClients(); + services.AddApiClients(configuration); services.AddPersistenceServices(configuration); } diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs index 18c85e4bb..2fca604fa 100644 --- a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs +++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs @@ -1,4 +1,6 @@ using System; +using FilterLists.SharedKernel.Apis.Clients.Options; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Refit; @@ -6,11 +8,15 @@ namespace FilterLists.SharedKernel.Apis.Clients { public static class ConfigurationExtensions { - public static void AddApiClients(this IServiceCollection services) + public static void AddApiClients(this IServiceCollection services, IConfiguration configuration) { // TODO: use SystemTextJsonContentSerializer() once less feature-limited services.AddRefitClient() - .ConfigureHttpClient(c => c.BaseAddress = new Uri("http://directory-api")); + .ConfigureHttpClient(c => + { + var host = configuration.GetSection(ApiOptions.Key).Get().DirectoryHost; + c.BaseAddress = new UriBuilder("http", host).Uri; + }); } } } diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Options/ApiOptions.cs b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Options/ApiOptions.cs new file mode 100644 index 000000000..2457c8ba0 --- /dev/null +++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Options/ApiOptions.cs @@ -0,0 +1,9 @@ +namespace FilterLists.SharedKernel.Apis.Clients.Options +{ + internal class ApiOptions + { + public const string Key = "Api"; + + public string DirectoryHost { get; set; } = null!; + } +}