Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
languages: csharp

- name: Build Solution
run: dotnet build -c Release --nologo Monai.Deploy.WorkloadManager.sln
run: dotnet build -c Release --nologo Monai.Deploy.WorkflowManager.sln
working-directory: ./src

- name: Perform CodeQL Analysis
Expand Down Expand Up @@ -87,7 +87,7 @@ jobs:
working-directory: ./src

- name: Dependency Scanning
run: nugetdefense -p src/Monai.Deploy.WorkloadManager.sln --settings-file NuGetDefense.json
run: nugetdefense -p src/Monai.Deploy.WorkflowManager.sln --settings-file NuGetDefense.json

build:
runs-on: ubuntu-latest
Expand All @@ -101,18 +101,18 @@ jobs:
run: |
export VERSION=`cat VERSION`
./build.sh
docker tag monai/workload-manager:$VERSION monai/workload-manager:${{ github.sha }}
docker tag monai/workflow-manager:$VERSION monai/workflow-manager:${{ github.sha }}

- name: Scan image with Azure Container Scan
uses: Azure/container-scan@v0
with:
image-name: monai/workload-manager:${{ github.sha }}
image-name: monai/workflow-manager:${{ github.sha }}

- name: Scan image with Anchore
id: scan
uses: anchore/scan-action@v2
with:
image: monai/workload-manager:${{ github.sha }}
image: monai/workflow-manager:${{ github.sha }}
fail-build: true
severity-cutoff: high
acs-report-enable: true
Expand Down
4 changes: 2 additions & 2 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/src/WorkloadManager/bin/Debug/net5.0/Monai.Deploy.WorkloadManager.dll",
"program": "${workspaceFolder}/src/WorkflowManager/bin/Debug/net5.0/Monai.Deploy.WorkflowManager.dll",
"args": [],
"cwd": "${workspaceFolder}/src/WorkloadManager",
"cwd": "${workspaceFolder}/src/WorkflowManager",
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
"console": "internalConsole",
"stopAtEntry": false
Expand Down
6 changes: 3 additions & 3 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"type": "process",
"args": [
"build",
"${workspaceFolder}/src/WorkloadManager/Monai.Deploy.WorkloadManager.csproj",
"${workspaceFolder}/src/WorkflowManager/Monai.Deploy.WorkflowManager.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
Expand All @@ -19,7 +19,7 @@
"type": "process",
"args": [
"publish",
"${workspaceFolder}/src/WorkloadManager/Monai.Deploy.WorkloadManager.csproj",
"${workspaceFolder}/src/WorkflowManager/Monai.Deploy.WorkflowManager.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
Expand All @@ -32,7 +32,7 @@
"args": [
"watch",
"run",
"${workspaceFolder}/src/WorkloadManager/Monai.Deploy.WorkloadManager.csproj",
"${workspaceFolder}/src/WorkflowManager/Monai.Deploy.WorkflowManager.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ All source code files should start with this paragraph:
#### Test Projects

All C# projects reside in their directory, including a `Tests/` subdirectory.
Test projects are also linked in the main solution file [Monai.Deploy.WorkloadManager.sln](src/Monai.Deploy.WorkloadManager.sln) and can be executed either using Visual Studio's *Test Explorer* or with the `dotnet test` command line.
Test projects are also linked in the main solution file [Monai.Deploy.WorkflowManager.sln](src/Monai.Deploy.WorkflowManager.sln) and can be executed either using Visual Studio's *Test Explorer* or with the `dotnet test` command line.


_If it's not tested, it's broken_
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ RUN dotnet tool install --tool-path /tools dotnet-stack
WORKDIR /app
COPY . ./

RUN echo "Building MONAI Workload Manager $Version ($FileVersion)..."
RUN dotnet publish -c Release -o out --nologo /p:Version=$Version /p:FileVersion=$FileVersion src/WorkloadManager/Monai.Deploy.WorkloadManager.csproj
RUN echo "Building MONAI Workflow Manager $Version ($FileVersion)..."
RUN dotnet publish -c Release -o out --nologo /p:Version=$Version /p:FileVersion=$FileVersion src/WorkflowManager/Monai.Deploy.WorkflowManager.csproj

# Build runtime image
FROM mcr.microsoft.com/dotnet/runtime:6.0-focal
Expand All @@ -50,4 +50,4 @@ EXPOSE 5000
RUN ls -lR /opt/monai/ig
ENV PATH="/opt/dotnetcore-tools:${PATH}"

ENTRYPOINT ["/opt/monai/ig/Monai.Deploy.WorkloadManager"]
ENTRYPOINT ["/opt/monai/ig/Monai.Deploy.WorkflowManager"]
4 changes: 2 additions & 2 deletions ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@ A clear and concise description of what actually happened.

### Configuration

* Workload Manager version/commit:
* Workflow Manager version/commit:
* OS and version (distro if applicable):
* Kubernetes version (if applicable):
* Docker version (if applicable):
* Installation source (NGC, Dockerhub, or something else):
* Hardware configuration (CPU, GPU, memory, storage, etc...):

### Regression?
Did this work in the previous build or release of the Workload Manager? If you can try a previous release or build to find out, that can help us narrow down the problem. If you don't know, that's OK.
Did this work in the previous build or release of the Workflow Manager? If you can try a previous release or build to find out, that can help us narrow down the problem. If you don't know, that's OK.

### Other information
(Please attach any logs available and remember to anonymize any PHI before sharing).
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
# MONAI Deploy Workflow Manager

[![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)
[![codecov](https://codecov.io/gh/Project-MONAI/monai-deploy-workload-manager/branch/main/graph/badge.svg?token=NXYQIABXZ7)](https://codecov.io/gh/Project-MONAI/monai-deploy-workload-manager)
[![codecov](https://codecov.io/gh/Project-MONAI/monai-deploy-workflow-manager/branch/main/graph/badge.svg?token=NXYQIABXZ7)](https://codecov.io/gh/Project-MONAI/monai-deploy-workflow-manager)

This repository contains the Workload Manager subsystem, part of MONAI Deploy. Please refer to the main [MONAI Deploy](https://github.com/Project-MONAI/monai-deploy) repo for more details.
This repository contains the Workflow Manager subsystem, part of MONAI Deploy. Please refer to the main [MONAI Deploy](https://github.com/Project-MONAI/monai-deploy) repo for more details.

## Build

Expand All @@ -34,7 +34,7 @@ $env:DOTNET_ENVIRONMENT="Development"
```


### Building MONAI Workload Manager
### Building MONAI Workflow Manager

```bash
cd src && dotnet build
Expand Down
8 changes: 4 additions & 4 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ if [ ! -z "$1" ]; then
fi


echo "Building Workload Manager Docker Image. VERSION=$VERSION, FILEVERSION=$FILEVERSION"
echo "Building Workflow Manager Docker Image. VERSION=$VERSION, FILEVERSION=$FILEVERSION"
pushd $SCRIPT_DIR
docker build --tag monai/workload-manager:$VERSION --build-arg Version=$VERSION --build-arg FileVersion=$FILEVERSION .
docker build --tag monai/workflow-manager:$VERSION --build-arg Version=$VERSION --build-arg FileVersion=$FILEVERSION .
popd

pushd $SCRIPT_DIR/src/CLI
echo "Building Workload Manager CLI: linux-x64"
dotnet publish -r linux-x64 -c Release -o $SCRIPT_DIR/cli/linux-x64
echo "Building Workflow Manager CLI: linux-x64"
dotnet publish -r linux-x64 -c Release --self-contained -o $SCRIPT_DIR/cli/linux-x64
popd
2 changes: 1 addition & 1 deletion codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ comment:
require_head: yes

fixes:
- "/home/runner/work/monai-deploy-workload-manager/monai-deploy-workload-manager/src/::src/"
- "/home/runner/work/monai-deploy-workflow-manager/monai-deploy-workflow-manager/src/::src/"
6 changes: 3 additions & 3 deletions guidelines/mwm-srs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

![MONAI Deploy Workflow Manager](./static/mwm.png)

- [MONAI Deploy Workflow Manager Requirements](#monai-deploy-workload-manager-requirements)
- [MONAI Deploy Workflow Manager Requirements](#monai-deploy-workflow-manager-requirements)
- [Overview](#overview)
- [Scope](#scope)
- [Goal](#goal)
Expand Down Expand Up @@ -114,7 +114,7 @@ Verify that payloads can be uploaded from data ingestion services and dispatched

#### Target Release

MONAI Deploy Workload Manager R3
MONAI Deploy Workflow Manager R3

### [REQ-DI-003] MWM SHALL allow data to be associated with one or more workflows

Expand Down Expand Up @@ -176,7 +176,7 @@ Once a workflow is registered, it should be triggered when data matching that wo

#### Verification Strategy

Deploy a clinical workflow and notify the workload manager of a new input payload. Verify that the clinical workflow was executed.
Deploy a clinical workflow and notify the Workflow manager of a new input payload. Verify that the clinical workflow was executed.

#### Target Release

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<PublishSingleFile>true</PublishSingleFile>
<PublishTrimmed>false</PublishTrimmed>
<PublishReadyToRun>true</PublishReadyToRun>
<RootNamespace>Monai.Deploy.WorkloadManager.CLI</RootNamespace>
<RootNamespace>Monai.Deploy.WorkflowManager.CLI</RootNamespace>
<CodeAnalysisRuleSet>..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>Monai.Deploy.WorkloadManager.CLI.Test</RootNamespace>
<RootNamespace>Monai.Deploy.WorkflowManager.CLI.Test</RootNamespace>

<IsPackable>false</IsPackable>
</PropertyGroup>
Expand Down
6 changes: 3 additions & 3 deletions src/Configuration/ConfigurationValidator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
using Microsoft.Extensions.Options;
using System;

namespace Monai.Deploy.WorkloadManager.Configuration
namespace Monai.Deploy.WorkflowManager.Configuration
{
public class ConfigurationValidator : IValidateOptions<WorkloadManagerOptions>
public class ConfigurationValidator : IValidateOptions<WorkflowManagerOptions>
{
public ValidateOptionsResult Validate(string name, WorkloadManagerOptions options)
public ValidateOptionsResult Validate(string name, WorkflowManagerOptions options)
{
throw new NotImplementedException();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>Monai.Deploy.WorkloadManager.Configuration</RootNamespace>
<RootNamespace>Monai.Deploy.WorkflowManager.Configuration</RootNamespace>
<CodeAnalysisRuleSet>..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
// SPDX-FileCopyrightText: © 2021-2022 MONAI Consortium
// SPDX-License-Identifier: Apache License 2.0

namespace Monai.Deploy.WorkloadManager.Configuration
namespace Monai.Deploy.WorkflowManager.Configuration
{
public class WorkloadManagerOptions
public class WorkflowManagerOptions
{
/// <summary>
/// Name of the key for retrieve database connection string.
/// </summary>
public const string DatabaseConnectionStringKey = "WorkloadManagerDatabase";
public const string DatabaseConnectionStringKey = "WorkflowManagerDatabase";

public WorkloadManagerOptions()
public WorkflowManagerOptions()
{

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace>Monai.Deploy.WorkloadManager.Contracts</RootNamespace>
<RootNamespace>Monai.Deploy.WorkflowManager.Contracts</RootNamespace>
<CodeAnalysisRuleSet>..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/Contracts/Rest/ServiceStatus.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: © 2021-2022 MONAI Consortium
// SPDX-License-Identifier: Apache License 2.0

namespace Monai.Deploy.WorkloadManager.Contracts.Rest
namespace Monai.Deploy.WorkflowManager.Contracts.Rest
{
/// <summary>
/// Defines the state of a running service.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>Monai.Deploy.WorkloadManager.Database</RootNamespace>
<RootNamespace>Monai.Deploy.WorkflowManager.Database</RootNamespace>
<CodeAnalysisRuleSet>..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31624.102
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkloadManager", "WorkloadManager\Monai.Deploy.WorkloadManager.csproj", "{4BABBAE0-5C3B-4DDB-B52C-8EFF2A115DAC}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager", "WorkflowManager\Monai.Deploy.WorkflowManager.csproj", "{4BABBAE0-5C3B-4DDB-B52C-8EFF2A115DAC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkloadManager.Test", "WorkloadManager\Test\Monai.Deploy.WorkloadManager.Test.csproj", "{F91CC7EF-B236-4FA2-A331-746375F65315}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Test", "WorkflowManager\Test\Monai.Deploy.WorkflowManager.Test.csproj", "{F91CC7EF-B236-4FA2-A331-746375F65315}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkloadManager.CLI", "CLI\Monai.Deploy.WorkloadManager.CLI.csproj", "{6A6F01AA-83A7-44FD-B9E9-E5A04BD2786B}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.CLI", "CLI\Monai.Deploy.WorkflowManager.CLI.csproj", "{6A6F01AA-83A7-44FD-B9E9-E5A04BD2786B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkloadManager.CLI.Test", "CLI\Test\Monai.Deploy.WorkloadManager.CLI.Test.csproj", "{F48CEA6A-DE92-495B-A347-761209357597}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.CLI.Test", "CLI\Test\Monai.Deploy.WorkflowManager.CLI.Test.csproj", "{F48CEA6A-DE92-495B-A347-761209357597}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkloadManager.Database", "Database\Monai.Deploy.WorkloadManager.Database.csproj", "{FE07AE59-97C9-49FF-9D36-485090E6B14D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Database", "Database\Monai.Deploy.WorkflowManager.Database.csproj", "{FE07AE59-97C9-49FF-9D36-485090E6B14D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkloadManager.Configuration", "Configuration\Monai.Deploy.WorkloadManager.Configuration.csproj", "{3D16153E-F052-48BB-B5F0-BA113DE4CB29}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Configuration", "Configuration\Monai.Deploy.WorkflowManager.Configuration.csproj", "{3D16153E-F052-48BB-B5F0-BA113DE4CB29}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkloadManager.Contracts", "Contracts\Monai.Deploy.WorkloadManager.Contracts.csproj", "{7E2B81A9-1951-4D8F-BC91-19DD69AF3328}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Contracts", "Contracts\Monai.Deploy.WorkflowManager.Contracts.csproj", "{7E2B81A9-1951-4D8F-BC91-19DD69AF3328}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

using System.Runtime.CompilerServices;

[assembly: InternalsVisibleTo("Monai.Deploy.WorkloadManager.Test")]
[assembly: InternalsVisibleTo("Monai.Deploy.WorkflowManager.Test")]

// ILogger<T>
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: � 2021-2022 MONAI Consortium
// SPDX-FileCopyrightText: � 2021-2022 MONAI Consortium
// SPDX-License-Identifier: Apache License 2.0

using Karambolo.Extensions.Logging.File;
Expand All @@ -7,7 +7,7 @@
using System.Globalization;
using System.Text;

namespace Monai.Deploy.WorkloadManager.Logging
namespace Monai.Deploy.WorkflowManager.Logging
{
public class FileLoggingTextFormatter : FileLogEntryTextBuilder
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using System;
using Microsoft.Extensions.Logging;

namespace Monai.Deploy.WorkloadManager.Logging
namespace Monai.Deploy.WorkflowManager.Logging
{
public static partial class Log
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>Monai.Deploy.WorkloadManager</RootNamespace>
<RootNamespace>Monai.Deploy.WorkflowManager</RootNamespace>
<CodeAnalysisRuleSet>..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>

Expand Down Expand Up @@ -38,9 +38,9 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Configuration\Monai.Deploy.WorkloadManager.Configuration.csproj" />
<ProjectReference Include="..\Contracts\Monai.Deploy.WorkloadManager.Contracts.csproj" />
<ProjectReference Include="..\Database\Monai.Deploy.WorkloadManager.Database.csproj" />
<ProjectReference Include="..\Configuration\Monai.Deploy.WorkflowManager.Configuration.csproj" />
<ProjectReference Include="..\Contracts\Monai.Deploy.WorkflowManager.Contracts.csproj" />
<ProjectReference Include="..\Database\Monai.Deploy.WorkflowManager.Database.csproj" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Monai.Deploy.WorkloadManager.Configuration;
using Monai.Deploy.WorkloadManager.Services.DataRetentionService;
using Monai.Deploy.WorkloadManager.Services.Http;
using Monai.Deploy.WorkflowManager.Configuration;
using Monai.Deploy.WorkflowManager.Services.DataRetentionService;
using Monai.Deploy.WorkflowManager.Services.Http;

namespace Monai.Deploy.WorkloadManager
namespace Monai.Deploy.WorkflowManager
{
internal static class Program
{
Expand Down Expand Up @@ -45,12 +45,12 @@ public static IHostBuilder CreateHostBuilder(string[] args) =>
})
.ConfigureServices((hostContext, services) =>
{
services.AddOptions<WorkloadManagerOptions>()
.Bind(hostContext.Configuration.GetSection("WorkloadManager"))
services.AddOptions<WorkflowManagerOptions>()
.Bind(hostContext.Configuration.GetSection("WorkflowManager"))
.PostConfigure(options =>
{
});
services.TryAddEnumerable(ServiceDescriptor.Singleton<IValidateOptions<WorkloadManagerOptions>, ConfigurationValidator>());
services.TryAddEnumerable(ServiceDescriptor.Singleton<IValidateOptions<WorkflowManagerOptions>, ConfigurationValidator>());

services.AddSingleton<ConfigurationValidator>();

Expand Down
Loading