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 LogOrdersProductService método na classe usa um Order objeto como um 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.