====== Manual de Implantação ====== ===== Resumo ===== Este documento tem como objetivo auxiliar na implantação do Tecsystem Policy Server. ===== Descrição ===== O Tecsystem Policy Server é o projeto responsável por gerenciar as permissões e os perfis dos usuários. Através dele a solução que for utiliza-lo poderá buscar, inserir, excluir e alterar as permissões dos usuários. //Obs: No momento o projeto apenas lê as permissões e retorna um dicionário com os dados.// ===== Implantação ===== O projeto pode ser acessado através de um repositório no Github. [[https://github.com/tecsystemsw/tecsystem-policyserver|tecsystem-policyserver]] ==== Passo a passo ==== • Faça o clone do repositório em um local da sua máquina. ''git clone https://github.com/tecsystemsw/tecsystem-policyserver.git'' • Adicione o projeto a solução desejada. {{:softwares:schoolweb:requisitos:documentacao_tecnica:adicionar_projeto.png|}} • Nas dependências do projeto adicione o projeto Tecsystem.PolicyServer. {{:softwares:schoolweb:requisitos:documentacao_tecnica:adicionar_referencia.png|}} • Modifique a classe **Startup.cs** * Adicione o contexto do PolicyServer. services.AddEntityFrameworkSqlServer() .AddDbContext(options => { options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), sqlServerOptionsAction: sqlOptions => { sqlOptions.MigrationsAssembly(typeof(ContextoPadrão).GetTypeInfo().Assembly.GetName().Name); sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }); }, ServiceLifetime.Scoped ) .AddDbContext(options => { options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), sqlServerOptionsAction: sqlOptions => { sqlOptions.MigrationsAssembly(typeof(PolicyServerDbContext).GetTypeInfo().Assembly.GetName().Name); sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }); }, ServiceLifetime.Scoped ); * Adicione ao escopo o repositório e o serviço. services.AddScoped(); services.AddScoped(); • Execute a migration para atualizar o banco de dados. update-database -Context PolicyServerDbContext • No arquivo **Program.cs**, no método de configuração do banco de dados adicione as seguintes linhas. var dbContextPolicy = services.GetService(); await dbContextPolicy.Database.MigrateAsync(); Pronto! Feito isso sua aplicação já estará funcionando como o Tecsystem Policy Server. ===== Estrutura ===== {{:softwares:schoolweb:requisitos:documentacao_tecnica:estrutura.png|}} A estrutura do projeto é bem simples, consiste em cinco diretórios e uma classe de contexto. Os diretórios são: * EntityConfiguration: Possui o mapeamento das classes e a inclusão inicial de informações a base de dados. * Migrations: Migrations utilizadas pelo entity para atualizar a estrutura ou os dados das tabelas relacionadas ao PolicyServer. * Model: Possui as classes de modelo do nosso projeto. * Repositoty: Possui as classes responsáveis por lidar diretamente com as operações do banco de dados. * Service: Fornece os métodos necessário para incluir, excluir, alterar e buscar os dados da policy. ===== Recomendações ===== * Qualquer alteração relacionada ao negócio não deve ser feita no projeto Tecsystem.PolicyServer; * Caso exista a necessidade de alterar alguma classe do projeto, essa alteração deverá ser feita no repositório tecsystem.policy-server.