Versão 43

Melhorias

Admin

  • Foi criado o processo “Admin > Ferramentas para chaves > Faixas de chaves” com o objetivo de permitir habilitar ou desabilitar as faixas de chaves positivas disponíveis para consumo pelo sistema. Este processo somente pode ser utilizado após a migração para chaves 64 bits ter sido concluída. Mais detalhes em Ferramentas para chaves.

Desenvolvimento

Engine

  • Foi criada a classe DatabaseSchemaObserver com o objetivo de observar as alterações no esquema da base de dados realizadas pela classe DatabaseSchema durante os processos de atualização de sistema e de estrutura da base de dados. Em sua versão inicial, a classe permite apenas observar a criação, alteração e remoção das colunas das tabelas da base de dados.
  • Foi criado o método Database.prototype.sequenceExists com o objetivo de verificar se uma sequência existe na base de dados.
  • A classe DatabaseSchema passa a permitir criar tabelas com coluna identidade, conceito exclusivo do Microsoft SQL Server. Para isso, deve ser utilizada a nova propriedade ColumnDef.prototype.identity.
  • Foi criado o método Database.prototype.loginByAuthToken com o objetivo de autorizar uma conexão a uma base de dados remota utilizando um token de autorização em vez das credenciais do usuário. O token informado deve ter ao menos o escopo de autorização “security.externalAccess”. Mais detalhes podem ser obtidos no manual Escopos de autorização.
  • O algoritmo de derivação de chaves utilizado pelo Engine para armazenar as senhas dos usuários foi atualizado e passa a gerar chaves de 256 bits, tornando o sistema mais seguro contra ataques de força bruta. É recomendado que os usuários renovem as suas senhas após a atualização do sistema para a versão 43 ou superior.

Defeitos corrigidos

Admin

  • Ao criar uma classe Custom no processo “Admin > Classes Explorer” ocorria o erro “Caracteres inválidos no nome da classe”.
  • Ao executar o relatório “Admin > Ferramentas para chaves > Consumo de chaves” ocorria o erro “O parâmetro content é de tipo não suportado”.

Desenvolvimento

  • Ao remover uma coluna de uma tabela totalizada por uma tabela de soma ocorria o erro “ORA-04098: trigger XXXX is invalid and failed re-validation” caso fosse utilizado o banco de dados Oracle.
  • Ao atualizar um arquivo utilizando o processo “Desenvolvimento > Atualização > Atualizar VFS” ocorria o erro “now is not defined” se fosse necessário criar classes na base de dados destino.

Engine

  • A remoção de registros das tabelas do cache local durante o sincronismo poderia provocar a perda de integridade dos dados se uma coluna fosse removida do modelo de dados após a criação do cache.
  • As modificações de senha de um usuário não eram registradas no log caso fossem realizadas por um administrador do sistema.

Web Framework

  • O evento “afterChange” não era emitido corretamente ao alterar um campo caso o método Grid.prototype.insert fosse executado programaticamente e o valor do campo alterado fosse igual ao do registro anterior.
  • A ausência de permissão de leitura ao diretório “profile” na pasta de instalação do Engine poderia provocar o erro “logger_ has no properties” durante a utilização do sistema.

Outras alterações

Desenvolvimento

  • Os processos de atualização passam a permitir a conversão de colunas do tipo “char” para “varchar” apenas para as tabelas que fazem parte do cache local. Para as demais tabelas foi criada a rotina de manutenção “Desenvolvimento > Manutenção > Converter colunas char para varchar” para realizar a conversão. O uso dessa nova rotina será sugerido pelos processos de atualização quando necessário.
  • Os processos de atualização passam a permitir a conversão de colunas do tipo “varchar(2000)” para “clob” no banco de dados PostgreSQL. Nos demais SGBDs, a conversão não será permitida e será indicada a utilização da rotina de manutenção “Desenvolvimento > Manutenção > Converter colunas varchar(2000) para clob” para realizar essa conversão. O uso dessa nova rotina será sugerido pelos processos de atualização quando necessário.

Engine

  • A classe ngin.db.DatabaseStructureManager foi removida do sistema. Em seu lugar, é recomendado o uso da API DatabaseSchema.