Versão 38
Melhorias
Admin
- O processo “Admin > Monitoramento > Sessões de aplicativo” passa a apresentar a grade
“Utilização por Engine”. Nela são totalizadas as quantidades de usuários e sessões por Engine.
- Foi criado o escopo de autorização “security.managePermissions” com o objetivo de limitar os
usuários que têm autorização para modificar as permissões do sistema. Por padrão, o grupo
“Administrators” passa a ter esse escopo de autorização. Demais grupos que precisem desse privilégio
devem ser revistos para incluir o novo escopo de autorização.
- Nos detalhes técnicos da ajuda do sistema passa a ser exibido o link “configurar permissões”
ao lado dos nomes dos processos, relatórios e classes de dados. Ao clicar no link, é aberto
o processo para configurar as permissões do recurso desejado. Esse atalho é visível apenas
para os usuários com privilégio de configurar as permissões do sistema.
- Foi criada a consulta “Admin > Auditoria > Eventos de erro” com o objetivo de
recuperar as mensagens de erro que foram exibidas para os usuários na utilização da interface
web padrão do sistema. Nessa consulta, são exibidos os detalhes técnicos que possam ter
sido eventualmente suprimidos em razão dos privilégios do usuário que estava utilizando o
sistema. Os registros de eventos de erro serão mantidos por 90 dias, sendo descartados
automaticamente pelas rotinas de limpeza do log transacional.
Engine
- Foi criado o método
DatabaseSchema.prototype.alterTableColumns
com o objetivo de alterar o tipo e as restrições das colunas de uma tabela da base de dados.
- Os métodos
DatabaseSchema.prototype.getTables
e
DatabaseSchema.prototype.getViews
passam
a permitir indicar os nomes das tabelas e visões cujas informações de esquema devem ser retornadas.
- Foi criado o método
DatabaseSchema.prototype.alterTable
com o objetivo de alterar as configurações gerais de uma tabela, incluindo a sua chave primária.
- Foram criados os métodos
createTableIndex
, renameTableIndex
e dropTableIndex
na classe
DatabaseSchema
com o objetivo criar, renomear e excluir índices da base de dados.
- Os nomes dos Engines cadastrados automaticamente pelos processos de monitoramento
(“Admin > Monitoramento”) passam a incluir a porta HTTP padrão. Essa alteração tem o objetivo de
facilitar a identificação dos Engines quando há várias instâncias instaladas em um mesmo servidor.
- O Engine passa a suportar o tipo “variant” no Microsoft SQL Server. Valores desse tipo serão
convertidos para texto e retornados em uma coluna do tipo “varchar(8000)”.
- O Engine passa a suportar datas no intervalo de 01/01/0100 a 01/01/1000 no Microsoft SQL Server e
PostgreSQL. Esse intervalo já era suportado no Oracle e essa melhoria simplifica a migração
de bases de dados Oracle para os demais SGBDs suportados pelo Engine.
- O método
Response.prototype.setCookie
passa a permitir configurar os parâmetros “SameSite” e “HttpOnly” do cookie.
- A função
validateString
passa a suportar o tipo 'int64'
.
- Agora é possível desligar a rotina de backup automático do Cache Local definindo a variável de
ambiente NGIN_DBCACHE_AUTO_BKP do sistema operacional com o valor off.
- Foi criada a função
toSqlIdentifier
com o objetivo de remover os caracteres inválidos em identificadores SQL, como nomes de tabelas
e colunas.
- Foi criada a propriedade
Task.prototype.scriptURI
com o objetivo de permitir a criação de tarefas que executem scripts da Union File System. O uso
da propriedade Task.prototype.scriptName
, restrita aos arquivos da Virtual File System, deixa de
ser recomendado após esta alteração.
- Foi criada a propriedade
DataSet.prototype.sqlStatement
com o objetivo de obter a expressão SQL que originou o DataSet.
- Foi implementado no Manage o suporte a autenticação por
Digest
.
Web Framework
- As propriedades decimalPrecision, minDecimalPrecision e maxDecimalPrecision passam a ser
suportadas nos campos do
FormDialog
- Os detalhes técnicos das mensagens de erro e nos diálogos de ajuda passam a ser exibidos apenas
para os usuários com permissão ao novo escopo de autorização “security.viewTechnicalInfo”. Esse
novo escopo passa a ser atribuído por padrão apenas aos grupos “Administrators” e “Developers”.
Mais detalhes em
https://nginstack.com/pt/docs/web-framework/faq.
- As mensagens de erros exibidas pelo Web Framework passam a exibir um ticket associado ao erro. A
informação do ticket é apresentada quando o usuário seleciona a opção “Exibir detalhes” no diálogo
do erro. O ticket é um identificador único do erro que também é gravado nos logs do sistema,
facilitando a pesquisa dos detalhes técnicos do erro que agora passam a ser suprimidos para os
usuários que não participam dos grupos “Administrators” e “Developers”.
Defeitos corrigidos
Desenvolvimento
- O campo “Destinos recentes” dos processos de atualização sugeria indevidamente a porta 80 para
endereços de servidores HTTPS. O histórico de destinos também passa a consolidar uma única
entrada por base de dados e endereço do servidor, independente do usuário que executou o processo,
reduzindo assim a quantidade de entradas similares no histórico.
Engine
- Uma consulta DNS reversa era realizada indevidamente a cada requisição HTTP atendida pelo Engine.
Essa consulta passa a ser executada sob demanda, quando for solicitado o nome do computador
associado a um endereço IP.
- Ao entrar no sistema com o usuário “administrator” poderia ocorrer o erro
“Foi detectada uma alteração indevida no registro do usuário” logo após o primeiro licenciamento
da base de dados.
- Requisições HTTPS encerradas pelo cliente poderiam ser exibidas indevidamente com o status
“Reading request information” no Manage.
- O agendador de scripts poderia acumular tarefas com o nome “Authentication failed (xxx)”
caso uma conta de usuário utilizada em mais de um Engine fosse bloqueada.
- A função
toSqlString
convertia indevidamente o parâmetro informado do tipo string para number quando ele era uma
representação textual de um número inteiro.
Web Framework
- A tecla enter não avançava para o próximo campo quando usada no FormDialog.
- Ao pressionar enter no último campo de um formulário, o usuário poderia ser redirecionado para
a tela de login.
- Os totais da grade poderiam ser exibidos vazios em vez de apresentarem o valor zero.
- Ao utilizar o método
Process.prototype.download
ocorria um erro que não permitia o download do arquivo quando o tráfego era intermediado por um
balanceador de cargas do Google Cloud Platform.
- Ao utilizar o método
Process.prototype.download
ocorria uma alteração indevida no nome do arquivo transferido caso ele contivesse acentos ou
caracteres especiais.
Outras alterações
Engine
- A memória consumida pelo método
DataSet.prototype.append
, quando informado um DataSet
, passa
a ser limitada em aproximadamente 2MB. Após esse valor, o método passa a utilizar um arquivo
temporário em disco para realizar a cópia dos dados.
- O método
QueryUtilities.prototype.clauseWhereOfKeys()
passa a gerar erro se o valor informado não for uma lista de chaves válida.
- O protocolo TLS 1.0 passa a ser desativado por padrão nas portas HTTPS.
Última atualização em 22 Apr 2021