diff --git a/README.md b/README.md index b342469..8f98d6c 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,14 @@ Includes the backend (`src/Vegasco.Server.Api`) and the frontend (`src/Vegasco-W ### Configuration -| Configuration | Description | Default | Required | -|--------------------------|---------------------------------------------------------------------------------------------------------------|------------------------------------------------------------|----------| -| JWT:MetadataUrl | The oidc meta data url | - | true | -| JWT:ValidAudience | The valid audience of the JWT token. | - | true | -| JWT:NameClaimType | The claim type of the user's name claim. For keycloak, using `preferred_username` is often the better choice. | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name | false | -| JWT:AllowHttpMetadataUrl | Whether to allow the meta data url to have http as protocol. Always true when `ASPNETCORE_ENVIRONMENT=true` | false | false | +| Configuration | Description | Default | Required | +|------------------------------------|---------------------------------------------------------------------------------------------------------------|------------------------------------------------------------|----------| +| JWT:MetadataUrl | The oidc meta data url | - | true | +| JWT:ValidAudience | The valid audience of the JWT token. | - | true | +| JWT:NameClaimType | The claim type of the user's name claim. For keycloak, using `preferred_username` is often the better choice. | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name | false | +| JWT:AllowHttpMetadataUrl | Whether to allow the meta data url to have http as protocol. Always true when `ASPNETCORE_ENVIRONMENT=true` | false | false | +| ConnectionStrings:seq | The seq http endpoint to send the logs and traces to. If not set, logs and traces will not be sent to seq. | - | false | +| ConnectionStrings:vegasco-database | The connection string to the postgres database. | - | true | The application uses the prefix `Vegasco_` for environment variable names. The prefix is removed when the application reads the environment variables and duplicate entries are overwritten by the environment variables. diff --git a/src/Vegasco-Web/Dockerfile b/src/Vegasco-Web/Dockerfile index 7a66bc5..5ee1157 100644 --- a/src/Vegasco-Web/Dockerfile +++ b/src/Vegasco-Web/Dockerfile @@ -1,4 +1,4 @@ -FROM node:lts AS build +FROM node:latest AS build RUN npm install -g pnpm ARG CONFIGURATION=development WORKDIR /usr/local/app diff --git a/src/Vegasco.Server.Api/Common/DependencyInjectionExtensions.cs b/src/Vegasco.Server.Api/Common/DependencyInjectionExtensions.cs index ccdbd30..33acf4f 100644 --- a/src/Vegasco.Server.Api/Common/DependencyInjectionExtensions.cs +++ b/src/Vegasco.Server.Api/Common/DependencyInjectionExtensions.cs @@ -18,6 +18,8 @@ public static class DependencyInjectionExtensions /// public static void AddApiServices(this IHostApplicationBuilder builder) { + builder.AddBuilderServices(); + builder.Services .AddMiscellaneousServices() .AddCustomOpenApi() @@ -27,6 +29,17 @@ public static class DependencyInjectionExtensions builder.AddDbContext(); } + private static IHostApplicationBuilder AddBuilderServices(this IHostApplicationBuilder builder) + { + string? seqHost = builder.Configuration.GetConnectionString("seq"); + if (!string.IsNullOrEmpty(seqHost)) + { + builder.AddSeqEndpoint("seq"); + } + + return builder; + } + private static IServiceCollection AddMiscellaneousServices(this IServiceCollection services) { services.AddSingleton(() => diff --git a/src/Vegasco.Server.Api/Vegasco.Server.Api.csproj b/src/Vegasco.Server.Api/Vegasco.Server.Api.csproj index 86548ed..461fc82 100644 --- a/src/Vegasco.Server.Api/Vegasco.Server.Api.csproj +++ b/src/Vegasco.Server.Api/Vegasco.Server.Api.csproj @@ -14,6 +14,7 @@ + diff --git a/src/Vegasco.Server.AppHost/Program.cs b/src/Vegasco.Server.AppHost/Program.cs index f3ea64e..81a12e7 100644 --- a/src/Vegasco.Server.AppHost/Program.cs +++ b/src/Vegasco.Server.AppHost/Program.cs @@ -14,13 +14,21 @@ if (builder.Environment.IsDevelopment()) .WithPgAdmin(); } +IResourceBuilder seq = builder.AddSeq("seq") + .WithLifetime(ContainerLifetime.Persistent) + .WithDataVolume() + .WithExternalHttpEndpoints() + .WithImageTag("latest"); + IResourceBuilder postgres = postgresBuilder .AddDatabase(Constants.Database.Name); IResourceBuilder api = builder .AddProject(Constants.Projects.Api) .WithReference(postgres) - .WaitFor(postgres); + .WaitFor(postgres) + .WithReference(seq) + .WaitFor(seq); builder .AddNpmApp("Vegasco-Web", "../Vegasco-Web") diff --git a/src/Vegasco.Server.AppHost/Vegasco.Server.AppHost.csproj b/src/Vegasco.Server.AppHost/Vegasco.Server.AppHost.csproj index 783a0d3..6f4dfb9 100644 --- a/src/Vegasco.Server.AppHost/Vegasco.Server.AppHost.csproj +++ b/src/Vegasco.Server.AppHost/Vegasco.Server.AppHost.csproj @@ -18,6 +18,7 @@ 3.7.115 +