Guia de Instalação
O módulo Site do Data Proof é responsável por prover as APIs que serão utilizadas pelo Front End e realizar uma ponte de comunicação entre todos os demais módulos que compõem a ferramenta. A configuração deste módulo é realizada através da manipulação do arquivo appsettings.json, encontrado na pasta raiz do módulo.
Este arquivo contém diversas configurações que são essenciais para o funcionamento correto do front-end e back-end da aplicação, incluindo configurações de banco de dados, URLs de aplicação, CORS, credenciais de serviços externos, e parâmetros de logging. Para modificar qualquer uma dessas configurações, edite os valores correspondentes no arquivo e logo após certifique-se de reiniciar o módulo para que as novas configurações sejam aplicadas.
É importante ressaltar que para o funcionamento dos módulos do Data Proof, as aplicações RabbitMQ e PostgreSQL são necessárias. Ambas podem ser obtidas gratuitamente nos links abaixo:
Clique aqui para fazer o download do RabbitMQ
Clique aqui para fazer o download do PostgreSQL
Propriedades do Arquivo de Configurações
Abaixo está um modelo não preenchido do arquivo appsettings.json.
{
"DatabaseSettings": {
"DBType": "",
"PostgreConnectionString": ""
},
"UseHttps": false,
"ApplicationUrl": "",
"IdentityServerAuthority": {
"RequireHttpsMetadata": false,
"IssuerURI": ""
},
"CorsOrigin": {
"Enabled": false,
"Hosts": [
""
]
},
"rabbitmq": {
"host": "",
"user": "",
"pwd": ""
},
"openAI": {
"ApiKey": ""
},
"DefaultFolder": "",
"TemplateStateless": "",
"TemplateStateful": "",
"AllowedHosts": "",
"EnableSwagger": false,
"SaveUserActivities": false,
"RestrictDashboardGraphicsDataToAutomationUserExecutions": false,
"Logging": {
"PathFormat": "",
"OutputTemplate": "",
"LogLevel": {
"LayoutValidator": "",
"Default": "",
"Microsoft": "",
"Microsoft.Hosting.Lifetime": "",
"Microsoft.AspNetCore.SpaServices": "",
"Microsoft.EntityFrameworkCore.Database.Command": "",
"Microsoft.EntityFrameworkCore.Infrastructure": ""
}
},
"ExternalLogin": {
"Microsoft": {
"ClientId": "",
"Issuer": "",
"ValidateIssuer": "false"
}
},
"OIDC": {
"Certificates": {
"Path": "",
"Password": ""
}
},
"STSKey": "",
"TDMEndpoint": "",
"TDMUser": "",
"TDMPassword": "",
"SmtpConfig": {
"Host": "",
"Port": 0,
"UseSSL": false,
"Name": "",
"Username": "",
"EmailAddress": "",
"Password": ""
}
}
O arquivo pode ser dividido em diferentes grupos de configurações, sendo eles:
- Bancos de Dados
- Endereços e Portas
- RabbitMQ
- Provedores Externos de Identidade
- Logs
- Outros
As tabelas do Site podem ser criadas em dois tipos diferentes de base de dados: PostgreSQL e OracleSQL. As configurações devem ser feitas dentro da propriedade DatabaseSettings.
· Propriedade DBType: Base de dados que será utilizada, os valores são: ORACLE e PGSQL;
· Propriedade ConnectionString: String de conexão com a base de dados;
- Oracle
- PostgreSQL
Data Source=(Endereço do Host)/(Nome da Base de Dados);User Id=(Usuário de login);Password=(Senha do usuário);
User ID=(Usuário de login);Password=(Senha do usuário);Host=(Endereço do Host);Port=(Porta do Host);Database=(Nome da Base de Dados);
Configurações relacionadas aos endereços e protocolos que o site utilizará, incluindo a porta desejada, além de configurações de CORS.
· Propriedade UseHttps: bool que indica se o protocolo HTTPS deve ou não ser utilizado;
· Propriedade ApplicationUrl: string que corresponde a url que o módulo irá utilizar, assim como a porta;
· Grupo IdentityServerAuthority: Configurações relacionadas ao IdentityServer:
· Propriedade RequireHttpsMetadata: bool utilizado para definir se o IdentityServer deve exigir metadados HTTPS ao se comunicar com provedores de identidade;
· Propriedade IssuerURI: string utilizado para definir a URL utilizada pelo provedor de identidade (costuma ser a mesma da propriedade ApplicationURL);
· Grupo CorsOrigin: Configurações relacionadas ao mecanismo CORS:
· Propriedade Enabled: bool utilizado para indicar se o CORS deve ou não ser utilizado;
· Propriedade Hosts: array de strings utilizado para informar todos os endereços permitidos pelo mecanismo CORS;
Configurações relacionadas ao RabbitMQ, gerenciador de filas utilizado pelo Data Proof:
· Propriedade host: string que corresponde a URL e porta utilizados pelo serviço do RabbitMQ;
· Propriedade user: string que corresponde ao login do usuário do RabbitMQ;
· Propriedade pwd: string que corresponde a senha do usuário do RabbitMQ;
Caso necessário, uma configuração extra desta sessão pode ser realizada, a mesma é referenciada pelo grupo rabbitmq2
Configurações relacionadas a provedores externos de identidade:
· Propriedade ClientId: string que corresponde ao client id gerado nas configurações do provedor externo de identidade;
· Propriedade Issuer: string url que será utilizada para se comunicar com o provedor externo de identidade;
· Propriedade ValidateIssuer: bool que será utilizada para se habilitar ou desabilitar a validação do retorno do provedor externo de identidade;
Configurações relacionadas aos logs gerados pelo módulo durante o funcionamento:
· Propriedade PathFormat: string que corresponde ao caminho onde o arquivo de logs será gerado;
· Propriedade OutputTemplate: string que corresponde ao formato em que as informações serão exibidas;
· Grupo LogLevel: Configurações relacionadas ao logging de diferentes partes da aplicação
Os níveis de logging são: None, Trace, Debug, Information, Warning, Error e Critical.
Configurações que não são relacionadas a uma categoria especifica, mas que são relevantes para o funcionamento do módulo:
· Propriedade DefaultFolder: string que corresponde ao caminho onde os arquivos temporários que são validados serão gerados;
· Propriedade TemplateStateless: string que corresponde ao caminho do template de uma regra customizada do tipo stateless;
· Propriedade TemplateStateful: string que corresponde ao caminho do template de uma regra customizada do tipo stateful;
· Propriedade EnableHosts: string que corresponde aos hosts permitidos pela aplicação;
· Propriedade EnableSwagger: bool que indica se o swagger estará ou não habilitado para testes de API;
· Propriedade SaveUserActivities: bool que indica se registros de auditoria serão gerados e gravados no banco;
Após a personalização dos arquivos, o módulo que representa o back-end poderá ser inicializado através do executável LayoutValidator.exe.
Inicializando o front-end da aplicação
Antes de iniciar o front-end da aplicação, é necessário alterar o arquivo .env, que esta localizado na pasta raiz. Alterando as propriedades VITE_API_ENDPOINT e VITE_OPENID_ENDPOINT para corresponder ao mesmo caminho apontado no arquivo appsettings.json, do back-end, para que a comunicação possa ser feita.
Após a realização das configurações necessárias, basta executar o arquivo .bat chamado start-DP, presente na pasta.
Para executar o front-end da aplicação, as versões atuais do Node (^20.12.1) e NPM (^10.5.0) são necessárias.