Создание отчетов о соответствии для аннотированного облачного приложения
Отделы соответствия требованиям должны иметь возможность просматривать отчеты о коде и соответствии, чтобы приложение соответствовало политикам компании. Платформа соответствия .NET позволяет создавать отчеты, показывающие состояние соответствия приложения.
Что такое отчет о соответствии?
Отчет о соответствии можно создать во время компиляции. Платформа соответствия .NET создает JSON-файл, содержащий сведения о классификациях данных и методах редактирования, используемых в приложении.
{
"Name": "DataEntities",
"Types": [
{
"Name": "DataEntities.Order",
"Members": [
{
"Name": "CustomerAddress",
"Type": "string",
"File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\DataEntities\\Order.cs",
"Line": "25",
"Classifications": [
{
"Name": "EUIIData"
}
]
},
{
"Name": "CustomerName",
"Type": "string",
"File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\DataEntities\\Order.cs",
"Line": "21",
"Classifications": [
{
"Name": "EUIIData"
}
]
},
...
Приведенный выше отчет является примером проекта eShopLite.DataEntities . В нем показано, что Order класс имеет два свойства, которые классифицируются как EUIIData.
{
"Name": "Store",
"Types": [
{
"Name": "Store.Services.Log",
"Logging Methods": [
{
"Name": "LogOrders",
"Parameters": [
{
"Name": "logger",
"Type": "Microsoft.Extensions.Logging.ILogger",
"File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\Store\\Services\\ProductService.cs",
"Line": "103"
},
{
"Name": "order",
"Type": "DataEntities.Order",
"File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\Store\\Services\\ProductService.cs",
"Line": "103"
}
]
}
]
}
]
}
Приведенный выше отчет является примером проекта eShopLite.Store . В нем показано, что LogOrders метод в классе принимает Order объект в ProductService качестве параметра для ведения журнала.
Создание отчета о соответствии
Для каждого проекта необходимо выполнить два шага:
Microsoft.Extensions.AuditReports
Добавьте пакет NuGet в каждый проект.Добавьте две записи в
PropertyGroup
раздел файла проекта csproj :<GenerateComplianceReport>true</GenerateComplianceReport> <ComplianceReportOutputPath>$(MSBuildThisFileDirectory)\path to folder location</ComplianceReportOutputPath>
Первый переключает создание отчета соответствия требованиям. Второй указывает путь к папке, в которой будет создан отчет. Имя файла ComplianceReport.json.
При выполнении этих обновлений в dotnet build
папке решения создается отчет о соответствии для каждого проекта с заданным true
свойствомGenerateComplianceReport
.