Gerar relatórios de conformidade para um aplicativo nativo da nuvem anotado

Concluído

Os departamentos de conformidade precisam ser capazes de revisar o código e os relatórios de conformidade para garantir que o aplicativo esteja em conformidade com as políticas da empresa. A estrutura de conformidade do .NET fornece uma maneira de gerar relatórios que mostram o status de conformidade do aplicativo.

O que é um relatório de conformidade?

Um relatório de conformidade pode ser gerado em tempo de compilação. A estrutura de conformidade .NET gera um arquivo JSON que contém detalhes sobre as classificações de dados e métodos de redação usados no aplicativo.

{
    "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"
                        }
                    ]
                },
    ...

O relatório acima é um exemplo do eShopLite.DataEntities projeto. Ele mostra que a Order classe tem duas propriedades que são classificadas como 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"
                        }
                    ]
                }
            ]
        }
    ]
}

O relatório acima é um exemplo do eShopLite.Store projeto. Ele mostra que o LogOrders ProductService método na classe usa um objeto como um Order parâmetro para registro.

Como gerar um relatório de conformidade

Há duas etapas que você precisa seguir para cada projeto para o qual deseja gerar um relatório:

  1. Adicione o Microsoft.Extensions.AuditReports pacote NuGet a cada projeto.

  2. Adicione duas entradas na PropertyGroup seção do arquivo de projeto csproj :

    <GenerateComplianceReport>true</GenerateComplianceReport>
    <ComplianceReportOutputPath>$(MSBuildThisFileDirectory)\path to folder location</ComplianceReportOutputPath>
    

    O primeiro ativa a geração de relatórios de conformidade. O segundo especifica o caminho para a pasta onde o relatório será gerado. O nome do arquivo é ComplianceReport.json.

Com essas atualizações, a execução dotnet build na pasta da solução gera um relatório de conformidade para cada projeto que tem a GenerateComplianceReport propriedade definida como true.