Na janela de Configurações do Projeto é possível visualizar informações e alterar diversas propriedades do sistema, seus campos estão dispostos em uma janela com abas e subabas.


Figura 1 - Acesso à aba Geral da janela de Configurações do Projeto


A janela pode ser acessada por três caminhos:

  1. Menu do sistema Projeto > Configurações (destaque 1 da figura 1).
  2. Arquivo app.config (Endereço: config/) na árvore de arquivos (destaque 2 da Figura 1.1). Esse arquivo só estará visível ao ativar o Modo Avançado.
  3. Opção Configurações do menu de contexto da raiz da árvore de arquivos (destaque 3 da figura 1.1).



Figura 1.1 - Acesso as configurações via menu de contexto ou arquivo app.config


As abas Geral, Configurações do Projeto, Cabeçalhos, Configurações de E-mail e Configuração do Proxy sempre serão exibidas, já as demais abas só aparecerão a partir de determinadas configurações.

Aba Geral

Exibe diversas informações sobre o sistema e o criador do projeto.


Figura 2 - Aba das Configurações Gerais do projeto


  • Nome do Projeto: permite alterar o nome do projeto.
  • Grupo id: identificador do grupo para o projeto mobile.
  • Artefato id: identificador do artefato para o projeto mobile.
  • Versão: define a versão atual do projeto.
  • Backup Automático: permite que o Cronapp crie backups automáticos do seu projeto. Para mais informações, acesse Backup Cronapp.
  • Data de Criação do Projeto em horário GMT.
  • ID do Projeto: identificador do seu projeto na estrutura interna do Cronapp.
  • ID Cópia de Trabalho: identificador da cópia de trabalho do projeto na estrutura interna do Cronapp.
  • Tipo do Projeto: pode ser web ou mobile.
    • Web: projeto não possui aplicação mobile;
    • Mobile: projeto contém aplicação mobile e pode ou não conter aplicação web.
    • Microservice: projeto contém apenas recursos de back-end. Veja mais detalhes na documentação Projeto de Microsserviços.
    • Java, NodeJs, Python ou Plugin: projetos criados em high-code. Veja mais detalhes na documentação Criar projetos High Code.
  • Administrador: nome do criador do projeto.
  • ID do Usuário: identificador do criador do projeto. 
  • ID do Contrato: identificador do contrato Cronapp vinculado ao criador do projeto.
  • País e Idioma: define o país e o idioma que serão usados por alguns recursos do projeto, por exemplo, os blocos de programação Formatar Data e Formatar Data com Fuso.
  • Codificação: define o tipo de codificação de caracteres nos arquivos do projeto, o padrão é o "UTF-8".
  • Rota Principal Web: define a página inicial ao abrir a URL da aplicação web. Só é possível alternar entre a página login (Localização: Formulários/Web/login  ) ou qualquer página dentro do diretório Público (Localização: Formulários/Web/Público/  ).

  • Rota Principal Mobile: define a tela inicial ao abrir a URL da aplicação mobile. Só é possível alternar entre a tela login (Localização: Formulários/Mobile/login  ) ou qualquer tela dentro do diretório Público (Localização: Formulários/Mobile/Público/  ).


Caso você entre em contato com o nosso suporte, os campos de ID's (Projeto, Cópia de trabalho, Usuário e Contratos) podem ser requisitados para facilitar a análise de possíveis problemas.

Aba Configurações do Projeto

Essa aba possui diversos campos de configurações agrupados em subabas (acordeão). Clique sobre as subabas para expandir ou recolher seus campos. 

Permissões

Os campos dessa subaba permitem definir formas de autorização para alguns recursos do projeto (Figura 3).


Figura 3 - Aba Configurações do Projeto - Permissões


  • Expor Metadados: permite obter os metadatas OData do sistema através do endereço:
    <URL do sistema>/api/cronapi/odata/v2/app/$metadata
    Expor os metadados pode ser útil ao obter campos de um web services na fonte de dados, veja mais detalhes no tópico "Obter campos do serviço com metadados" na documentação da Fonte de dados.
    • É possível restringir o acesso aos metadados para os permissionáveis do sistema através do ícone cadeado no final do campo, esse ícone ficará desabilitado ao desmarcar a caixa de checagem do recurso.
  • Expor Entidades: permite obter os dados diretamente das entidades através do endereço
     <URL do sistema>/api/cronapi/odata/v2/app/<Entidade>

    • É possível restringir o acesso às consultas das entidades para os permissionáveis do sistema através do ícone cadeado no final do campo, esse ícone ficará desabilitado ao desmarcar a caixa de checagem do recurso.

      Como informado no tópico "Uso de entidades vs. fonte de dados" do Manual de Boas Práticas, essa opção não é recomendada.

  • Permitir abrir o projeto em Iframe: possibilita que o conteúdo do seu projeto seja aberto e compartilhado em outras páginas. Por padrão, já vem habilitado com a opção "Permitir da mesma origem" e cada propriedade possui um tipo de restrição diferente, podendo diminuir ou aumentar a segurança do X-Frame.
    • Qualquer endereço: remove completamente a segurança do X-Frame, permitindo que sua aplicação possa ser chamada por qualquer endereço.
    • Não permitir: desabilita a chamada do projeto via Iframe.
    • Permitir da mesma origem: possibilita que o Iframe seja usado apenas por endereços dentro da URL Base. Por exemplo: o endereço "exemplo1.ide.cronapp.io/usuarios" será aceito, pois a página "usuarios" está contida no domínio "exemplo1.ide.cronapp.io/".

      Observação

      O servidor pode sobrescrever as opções colocadas na aplicação, por tanto, caso o comportamento do projeto não esteja como selecionado na aplicação, provavelmente já existe uma configuração pré-definida no servidor.

  • Cross-Origin Resource Sharing (CORS): é um mecanismo de compartilhamento de recursos que permite especificar quais aplicações externas podem acessar os recursos do projeto. Este campo define quais origens têm permissão para acessar os recursos da aplicação e as incluirá no cabeçalho CORS Access-Control-Allow-Origin na resposta da requisição. Para mais detalhes, consulte a documentação de referência.
    • Qualquer Endereço: define que os recursos da aplicação podem ser acessados a partir de qualquer origem. Para inserir uma origem personalizada, apague o texto "Qualquer Endereço" e digite o novo endereço. Para incluir mais de um endereço, separe-os por vírgula (,). 
    • Permitir da mesma origem: restringe o acesso apenas a endereços do mesmo domínio da aplicação, fornecendo uma camada adicional de segurança.
  • Métodos: define quais métodos HTTP estão autorizados a acessar os recursos da aplicação. Os métodos informados serão incluídos no cabeçalho CORS "Access-Control-Allow-Methods" na resposta da requisição. Consulte a documentação de referência para informações adicionais.
    • Todos: permite que todos os métodos HTTP acessem a aplicação. Para inserir um método personalizado, apague a opção "Todos" e digite o novo método. Para incluir mais de um método, separe-os por vírgula (,).
  • Cabeçalhos: define quais cabeçalhos HTTP podem ser utilizados durante a requisição. Os métodos informados serão incluídos no cabeçalho CORS Access-Control-Allow-Headers na resposta da requisição. Consulte a documentação de referência para mais informações.
    • Todos: define que todos os cabeçalhos HTTP serão permitidos na requisição. Para inserir um cabeçalho personalizado, apague a opção "Todos" e digite o novo cabeçalho. Para incluir mais de um cabeçalho, separe-os por vírgula (,). 
  • Exibir Chaves Compostas: a Fonte de dados concatena todas as primary keys de entidades com chaves compostas no atributo "_objectKey", dessa forma, é possível trabalhar com uma única chave primária. Exemplo: <chave1>~<chave2>~<chaveN>
    • Ativado: utiliza todas as chaves primárias, de modo a manter a compatibilidade com projetos das versões antigas do Cronapp;
    • Desativado: utiliza o atributo "_objectKey".
  • Adicionar Campos de Pesquisaexibe um campo display da classe relacionada.
    Por exemplo: Ao listar a entidade que possui a chave estrangeira de um relacionamento 1 para N (pessoa - telefone), os campos apresentados serão:
    • Ativado: telefone(id, numero, pessoa, pessoa_nome), o campo pessoa possui a chave estrangeira e pessoa_nome o display; 
    • Desativado: telefone(id, numero, pessoa), o campo pessoa possui a chave estrangeira e não existe campo display.
  • Mostrar Pilha de Chamada em Erros: habilita ou desabilita a visualização da pilha de erros (stacktrace) na página da aplicação. Por padrão essa opção já vem habilitada com a criação do projeto.

Autenticação e Segurança

A subaba Autenticação e Segurança possuem campos que permitem definir as formas de autenticação e segurança do sistema.


Figura 3.1 - Aba Configurações do Projeto - Autenticação


  • GUID: chave única de autenticação para do sistema. 
  • Token: token de autenticação da aplicação.

    O token possibilita, por exemplo, que um sistema Cronapp servidor possa prover recursos REST privado para um sistema Cronapp cliente, sem a necessidade de autenticação a cada requisição. 

    Para funcionar, é necessário que o campo token nos dois projetos possuam o mesmo valor. Após isso, basta utilizar a constante token nos cabeçalhos X-AUTH-TOKEN das requisições. Para mais detalhes, acesse os tópicos "Aba Cabeçalhos" e "Constantes" em Fonte de dados.

  • Expiração do Token (segundos): tempo em que o token do usuário ficará ativo. Após esse período, o token ficará inválido e o usuário será deslogado da aplicação. No entanto, caso o usuário faça logout antes do tempo informado nesse campo, o token ficará imediatamente inválido. Para mais detalhes, consulte a documentação Invalidação de tokens
  • Manter Log de Auditoria (dias): define o tempo que os dados da auditoria em log ficarão salvos no banco de dados (tabela AUDIT_LOG).
  • Recaptcha: chave recaptcha para validação do lado servidor. Acesse Captcha para mais informações.
  • Autenticação: define o tipo de autenticação do projeto. A depender do tipo de autenticação selecionado, a subaba de Configurações de Autenticação aparecerá logo abaixo do campo Autenticação.
  • Login por Redes Sociais: essa opção só é permitida para as autenticações do tipo Sessão ou Token. Quando selecionado exibe a aba Redes Sociais na janela de Configurações do Projeto.
  • Autenticação Mútua (Certificado Digital): essa opção só é permitida para as autenticações do tipo Sessão e Token. Acesse Autenticação mútua (certificado digital) para maiores informações.
  • Permitir que os Usuários se Cadastrem: habilita o recurso para que os usuários do projeto possam se cadastrar no sistema. Por padrão, essa opção vem habilitada e, ao desabilitar, o usuário não poderá efetuar o signup via rede social ou outra forma de autenticação, também será necessário acessar as páginas de login das aplicações web e mobile para retirar os links que direcionam para a tela de auto-cadastro do usuário. Veja mais detalhes sobre as páginas de login e cadastre-se na documentação Projeto modelo.
  • Habilitar Autenticação por Biometria (Mobile)possibilita o usuário fazer login na aplicação mobile usando a impressão digital, no caso do sistema operacional Android, ou FaceID, utilizando iOS. A biometria é ativada para cada sessão do usuário, o que significa que inicialmente o usuário precisa fazer o login fornecendo seu usuário e senha, permitindo armazenamento do token no dispositivo. A autenticação biométrica só será solicitada se o usuário sair da aplicação sem fazer logout, fechando o aplicativo diretamente. Ao realizar o logout no aplicativo, o token é perdido e o próximo login deverá ser feito com o uso do usuário e senha antes de poder usar a biometria novamente. Veja mais detalhes na documentação Autenticação por biometria (mobile).

Configuração Avançada

Possui campos para definir as regras de segurança das senhas dos usuários do sistema (Figura 3.1).


Vale destacar dois pontos sobre os campos de regras de senhas:

  1. Esses campos só são válidos para as autenticações do tipo Sessão e Token.
  2. Para funcionar, é necessário que o campo Política de Senha nas configurações do atributo password da classe User no Diagrama de dados esteja definido como "Completo", ao invés do padrão "Nenhum".

O valor "0" nos campos de regra de senha desativa a propriedade. Por exemplo, ao informar o valor "0" no campo Tempo de ociosidade (minutos), o usuário nunca será deslogado.


  • Tamanho mínimo da senha: quantidade mínima de caracteres.
  • Número de tentativas antes do bloqueio: define a quantidade máxima de tentativas com a senha errada para o bloquear o usuário.
  • Tempo de bloqueio: tempo que o usuário permanecerá bloqueado após errar a senha do login pelo número definido no campo "Número de tentativas antes do bloqueio".
  • Tempo de ociosidade (minutos): tempo para deslogar o usuário por inatividade no sistema.
  • Mínimo de caracteres maiúsculos: só serão aceitas senhas com a quantidade mínima de caracteres maiúsculos informado nesse campo. 
  • Mínimo de caracteres numéricos: só serão aceitas senhas com a quantidade mínima de caracteres numéricos informado nesse campo. 
  • Mínimo de caracteres especiais: só serão aceitas senhas com a quantidade mínima de caracteres especiais informado nesse campo. Lista dos caracteres especiais:
  • Aceitar apenas senhas fortes: ao marcar esse campo, todas as senhas devem passar pelos critérios abaixo:
    1. Não serão aceitas senhas que contenham 3 ou mais caracteres em sequência das seguintes sequências:
      • Alfabeto minúsculo: "abcdefghijklmnopqrstuvwxyz",
      • Alfabeto maiúsculo: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
      • Sequência numérica: "0123456789";
    2. Não serão aceitas senhas que contenham 3 ou mais caracteres em sequência da disposição do teclado "QWERTY";
    3. Não serão aceitas senhas que contenham apenas espaços em branco.
  • Não permitir senhas repetidasimpede o usuário de reutilizar a mesma senha usadas nas 3 últimas redefinições de senhas.

Configurações da Autenticação

A subaba Configurações de Autenticação (destaque 2 da figura 3.2) só será exibida ao selecionar as opções abaixo no campo Autenticação (destaque 1 da figura 3.2).


Figura 3.2 - A subaba Configurações da Autenticação só é exibida ao selecionar determinadas autenticações


Acesse a documentação de cada tipo de autenticação para mais detalhes sobre seus campos de configurações:

Banco de Dados

Campos para configurações com o Banco de dados do sistema.


Figura 3.3 - Aba Configurações do Projeto - Banco de Dados


  • Descarregar dados da transação: define como as alterações de dados serão enviadas para o banco de dados em todas as unidades de persistência (Namespaces) do projeto, podendo ser:

    É possível alterar o tipo de descarga para um Namespace, em um fluxo específico, com o uso do bloco Definir modo de descarga de dados da transação.

    • Sempre: (padrão) faz com que o envio dos dados ocorra sempre antes de uma consulta ser executada ou após acabar o fluxo.
    • Ao comitar: faz a descarga dos dados quando houver uma chamada de commit, flush ou quando acabar o fluxo.
  • Fuso Horário: define o fuso horário do sistema. Acesse Entendendo o funcionamento dos tipos data e hora para mais informações.
  • Converter Fuso Horário do Cliente: permite salvar data e hora em banco a partir do fuso horário do cliente. Acesse Entendendo o funcionamento dos tipos data e hora para mais informações.

Tema

Possui campos para a seleção dos Temas e skins das aplicações clientes. A primeira linha permite configurar o Tema e Skin da aplicação Web, enquanto a segunda alterna o Tema e Skin da aplicação mobile.


Figura 3.4 - Aba Configurações do Projeto - Tema


  1. Preview do tema: exibe uma imagem de exemplo do tema selecionado.
  2. Nome do tema
  3. Buscar: abre a janela de seleção dos temas.
  4. Preview do skin: exibe as 5 principais cores do skin selecionado.
  5. Endereço do skin.
  6. Buscar: abre a janela de seleção dos skins criados.
  7. Limpar: remove a seleção do skin, retornando as configurações padrão do tema selecionado.

Swagger / Open API

Habilita os recursos que estarão disponíveis na janela de recursos do Swagger / Open API.


Figura 3.5 - Aba Configurações do Projeto - Swagger / Open API


  • Ativar documentação de API's REST: habilita o recurso do Swagger através do endereço "<domínio>/api/metadata/". Caso essa opção esteja desabilitada, será exibido um erro 403.
  • Ativar para autenticação: exibe os endpoints de autorização (/auth e /auth/refresh) na tela do Swagger, permitindo testar os recursos privados. 
  • Ativar para entidades: exibe os recursos REST habilitados nas classes do Diagrama de dados.
  • Ativar para fontes de dados: exibe os recursos REST habilitados nas Fontes de dados.
  • Ativar para blocos: exibe os recursos REST habilitados nas configurações dos Blocos de programação.

Aba Cabeçalhos

Permite criar e configurar os cabeçalhos da aplicação. Todas as requisições REST realizadas no projeto incluirão os cabeçalhos adicionados.

Os cabeçalhos cadastrados poderão ser modificados a partir da ferramenta Parâmetros do sistema ou no campo "Variáveis de Ambiente" da janela de configuração da publicação nos Serviços de cloud, entretanto, as chaves utilizadas por essas ferramentas devem possuir características específicas. Acesse suas respectivas documentações para mais detalhes.


Figura 4 - Aba Cabeçalhos


  • Chave: nome do cabeçalho a ser criado.
  • Valor: valor do cabeçalho criado.

Destaques da Figura 4:

  1. Botão (+): permite adicionar novos cabeçalhos.
  2. Botão (x): permite excluir o cabeçalho correspondente.

Aba Configurações de E-mail

Os campos abaixo são utilizados em conjunto com os recursos de envio automático de senha e recuperação de senha do usuário.


Figura 5 - Aba Configurações de E-mail

Servidor de E-mail SMTP

Dados do servidor do e-mail (Figura 5).

  • Host do Servidor SMTP: endereço SMTP do servidor de e-mail.
  • Usuário de Login do Servidor SMTP: login do usuário do servidor SMTP que irá disparar os e-mails.
  • Senha de Login do Servidor SMTP: senha do usuário do servidor SMTP.
  • Protocolo usado pelo Servidor SMTP: protocolo usado pelo servidor SMTP.
  • Porta do Servidor SMTP: porta usada pelo servidor SMTP.
  • Habilita o uso do Comando AUTH: permitir o uso de comandos de autenticação.
  • Habilita o uso do Comando STARTTLS: permitir o uso de comandos STARTTLS.
  • Tamanho do Batch: define a quantidade de e-mails que serão enviados por lote.
  • Expressão Cron: define regras de agendamento para o disparo de e-mails através de Cron expressions.

Dados do Remetente (Reset de Senha)

Dados do remetente (Figura 5).

  • Nome: nome do remetente do e-mail.
  • Email: endereço do e-mail usado para disparar os e-mails.

Aba Configuração do Proxy

Permite configurar o proxy que atuará como intermediário para as requisições da aplicação. Os campos desta aba serão utilizados para configurar o host e a porta utilizados na conexão. Importante destacar que essa configuração não estar relacionada com os perfis da aplicação.


Figura 6 - Aba Configuração do Proxy


  • Host: endereço do servidor proxy para o qual as requisições serão encaminhadas.
  • Porta: número da porta associada ao endereço do host.

Aba Controle de versão

A aba só será exibida quando o projeto estiver sob controle de versão (GIT). 


Figura 7 - Aba Controle de versão


Com exceção do campo URL do Repositório, todos os outros campos permitem atualizações.

  • URL do Repositório: endereço informado ao exportar projeto.
  • Usuário do sistema de versionamento. 
  • Senha do sistema de versionamento.
  • Nome do Autor na assinatura do commit.
  • Email do Autor na assinatura do commit.
  • Botão Autorizar Github: esse botão será exibido apenas quando a URL do repositório for um link do Github, ao clicar, um token OAuth será gerado, vinculando sua conta do Github ao seu projeto no Cronapp. Vejas mais detalhes no tópico "Autenticação com o Github" na documentação Versionamento usando Git.

Aba Redes Sociais

A aba só será exibida se a opção Login por Redes Sociais na subaba Autenticação da aba Configurações do Projeto estiver ativa. Ela permite configurar o sign-up por login social para usuários com contas ativas no Cronapp e também nas seguintes redes sociais: Facebook, Github, Linkedin e Google.

É necessário acessar a área de desenvolvedor de cada rede social e configurar a sua aplicação. Para mais detalhes, acesso o tutorial Login por redes sociais.


Figura 8 - Aba Redes Sociais


  1. Checkbox Inscrição Automática: faz o cadastro automático durante o primeiro login social.
  2. Nome da rede social.
  3. Checkbox Rede social: define quais redes sociais poderão autenticar na sua aplicação;
  4. ID da Aplicação: o identificador de autorização é obtido após cadastrar sua aplicação na área de desenvolvedor da rede social.
  5. Segredo da Aplicação: a chave secreta de autorização é obtida após cadastrar sua aplicação na área de desenvolvedor da rede social.