Notas de lançamento do Edge Microgateway

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Versão 3.3.x

Correções de bugs e melhorias v.3.3.x

3.3.3

Em 25 de abril de 2024, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.3.3. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.3.3 3.3.3 3.3.3 3.3.3 3.2.2

Correções de bugs e melhorias:

Id do problema Tipo Descrição
315939218 Removido

O plug-in do cliente Eureka foi removido do Edge Microgateway. A remoção desse recurso não afeta a funcionalidade principal do Edge Microgateway nem a regravação dos URLs de destino. Para mais detalhes, consulte Como reescrever os URLs de destino em plug-ins.

283947053 Removido

A compatibilidade com forever-monitor foi removida do Edge Microgateway. Você pode substituir forever-monitor por PM2. Para mais detalhes, consulte esta postagem na Comunidade da Apigee: Edgemicro + PM2: Starting Edgemicro as a service (em inglês).

Problemas de segurança corrigidos

  • CVE-2023-0842
  • CVE-2023-26115
  • CVE-2022-25883
  • CVE-2017-20162
  • CVE-2022-31129
  • CVE-2022-23539
  • CVE-2022-23541
  • CVE-2022-23540
  • CVE-2024-21484
  • CVE-2022-46175
  • CVE-2023-45133
  • CVE-2020-15366
  • CVE-2023-26136
  • CVE-2023-26115

3.3.2

Em 18 de agosto de 2023, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.3.2. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.3.2 3.3.2 3.3.2 3.3.2 3.2.2

Correções de bugs e melhorias:

Id do problema Tipo Descrição
296187679 Engenharia de

As versões compatíveis do Node.js são: 16, 18 e 20. A partir da versão 3.3.2, os comandos da CLI do Edge Microgateway só vão funcionar nas versões com suporte. Executar comandos da CLI em versões não compatíveis resultará em erro. Consulte também Software e versões compatíveis com a Apigee.

283947053 Bug

Foi corrigido um problema em que o Edge Microgateway retornava o primeiro produto de API na lista de produtos de API associados a um app. Agora, com base na solicitação, determinamos o produto de API correto a ser retornado.

274443329 Bug

Correção de um problema em que o Docker estava extraindo uma versão de imagem desatualizada. A versão do nó do Docker foi atualizada para a versão 18 do Node.js. Agora, criamos a imagem do Docker com a versão 18.17-buster-slim.

Problemas de segurança corrigidos

Nenhum.

3.3.1

Em 7 de junho de 2022, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.3.1. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.3.1 3.3.1 3.3.1 3.3.1 3.2.2

Correções de bugs e melhorias:

Id do problema Tipo Descrição
220885293 Engenharia de

O Node.js versão 16 agora é compatível.

231972608 Bug

Foi corrigido um problema em que o comando private configure gerava um erro ao tentar configurar uma nuvem privada.

233315475 Bug

Foi corrigido um problema em que o plugin json2xml gerava um erro de análise ao transformar a resposta de JSON para XML e quando usado em combinação com o plugin accumulate-response.

221432797 Mudar

A versão do Node.js do Docker da imagem base do Edge Microgateway foi atualizada para o Node.js 14.

215748732 Engenharia de

Adicionamos suporte à autenticação de tokens SAML ao comando revokekeys.

Agora é possível transmitir um token SAML em vez de credenciais de nome de usuário e senha usando a opção -t no comando revokekeys.

Veja mais detalhes na referência de linha de comando.

218723889 Atualização do documento

A documentação foi atualizada para incluir um link para os plug-ins do Edge Microgateway compatíveis armazenados no GitHub. Consulte Plug-ins existentes incluídos no Edge Microgateway.

Problemas de segurança corrigidos

Id do problema Descrição
CVE-2021-23413 Isso afeta o pacote jszip anterior à versão 3.7.0. Criar um novo arquivo ZIP com nomes de arquivos definidos como valores de protótipo de objeto (por exemplo, proto, toString etc.) resulta em um objeto retornado com uma instância de protótipo modificada.

3.3.0

No dia 4 de fevereiro de 2022, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

Na tabela a seguir, listamos os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.3.0. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.3.0 3.3.0 3.3.0 3.3.0 3.2.2

Correções de bugs e melhorias:

Id do problema Tipo Descrição
219556824 Problema conhecido O Edge Microgateway Gateway 3.3.0 é incompatível com o comando npm audit fix.

Executar npm audit fix faz com que apigeetool seja atualizado para 0.15.2, o que afeta o comando edgemicro upgradeauth.

Se você executar npm audit fix e depois executar edgemicro upgradeauth, este erro será exibido:

Error: This method has been removed in JSZip 3.0, please check the upgrade guide.

Para corrigir o problema, execute o seguinte comando para restaurar a versão correta de apigeetool:

npm install apigeetool@0.15.1

Esse problema será resolvido em uma versão futura do Edge Microgateway.

138622990 Engenharia de

Uma nova sinalização para o plug-in de cotas, isHTTPStatusTooManyRequestEnabled, configura o plug-in para retornar um status de resposta HTTP 429 em vez do status 403 se houver uma violação de cota. Consulte Opções de configuração da cota.

192534424 Bug

Correção de um problema em que o código de resposta visto na análise da Apigee não corresponde ao código de resposta do Edge Microgateway.

198986036 Melhoria Agora o Edge Microgateway busca a chave pública de um provedor de identidade (IdP) em cada intervalo da enquete e atualiza a chave caso a chave pública dele seja alterada. Antes, o plug-in extauth não conseguia atualizar a chave pública sem recarregar o Edge Microgateway quando a chave pública de um IDP mudava.
168713541 Bug

A documentação foi aprimorada para explicar como configurar o TLS/SSL para vários destinos. Consulte Como usar opções de SSL/TLS do cliente.

171538483 Bug

A documentação foi alterada para corrigir a convenção de nomenclatura do arquivo de registro. Consulte Convenções de nomenclatura de arquivo de registros.

157908466 Bug

A documentação foi alterada para explicar corretamente como instalar uma versão específica do Edge Microgateway. Consulte Como fazer upgrade do Edge Microgateway se você tiver uma conexão de Internet.

215748427 Bug Correção de um problema em que o comando revogarkeys retornava um erro ao revogar uma chave usando um par existente de chave e secret.
205524197 Bug A documentação foi atualizada para incluir a lista completa de níveis de geração de registros. Consulte Atributos Edgemicro e Como definir o nível de geração de registros.

Versão 3.2.x

Correções de bugs e melhorias v.3.2.x

3.2.3

Em 17 de setembro de 2021, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.2.3. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.2.3 3.2.3 3.2.3 3.2.3 3.2.2

Correções de bugs e melhorias:

Id do problema Tipo Descrição
192416584 Engenharia de

O atributo de configuração disableStrictLogFile permite relaxar permissões estritas de arquivo no arquivo de registros do aplicativo api-log.log. Para mais detalhes, consulte Como relaxar as permissões do arquivo de registros.

192799989 Engenharia de

O atributo de configuração on_target_response_abort permite controlar como o Edge Microgateway se comporta se a conexão entre o cliente (Edge Microgateway) e o servidor de destino for fechada prematuramente. Para mais detalhes, consulte Atributos Edgemicro.

148062415 Bug Foi corrigido um problema em que, em um contexto de contêiner do Docker, o Edge Microgateway não era encerrado corretamente com o comando docker stop {containerId}. O processo foi encerrado, mas os arquivos .sock e .pid não foram removidos. Agora os arquivos serão removidos, e a reinicialização do mesmo contêiner funcionará conforme o esperado.
190715670 Bug Correção de um problema em que algumas solicitações ficavam travadas durante a atividade de recarga interna do microgateway. Esse problema era intermitente e ocorreu em situações de alto tráfego. O problema foi observado quando os recursos tokenCache e cacheKey do plug-in OAuth eram usados.
183910111 Bug Correção de um problema em que um URL de caminho de recurso com uma barra à direita era interpretado incorretamente como um caminho de recurso separado. Agora, por exemplo, os caminhos /country/all e /country/all/ são interpretados como o mesmo caminho.

Problemas de segurança corrigidos

Id do problema Descrição
CVE-2020-28503 Os copy-props do pacote anteriores à 2.0.5 são vulneráveis à poluição do protótipo pela funcionalidade principal.
CVE-2021-23343 Todas as versões da análise do caminho do pacote são vulneráveis à negação de serviço de expressão regular (ReDoS, na sigla em inglês) usando expressões regulares splitDeviceRe, splitTailRe e splitPathRe. O ReDoS apresenta complexidade de tempo polinomial de pior caso.

3.2.2

Na quinta-feira, 15 de julho de 2021, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.2.2. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.2.2 3.2.2 3.2.2 3.2.2 3.2.2

Correções de bugs e melhorias:

Id do problema Tipo Descrição
185323500 Mudar

O valor expires_in mudou de string para número inteiro

As APIs de solicitação de token e de atualização de token agora retornam expires_in como um valor inteiro especificado em segundos.

Para estar em conformidade com o Framework de autorização do OAuth 2.0 RFC 6749, o valor esperado para o parâmetro de configuração expires_in foi alterado de string para número inteiro. Para mais detalhes, consulte Referência de operações e configurações.

188492065 Mudar Fim do suporte ao Node.js 8

A partir da versão 3.2.2, o Node.js 8 não será mais compatível. Para mais informações, consulte Softwares e versões compatíveis: Edge Microgateway.

183990345 Engenharia de Configure a saída do registro para o contêiner do Docker

Com o parâmetro de configuração do Edge Microgateway to_console, é possível enviar informações de registro para a saída padrão em vez de para um arquivo de registros. Se você seguir as etapas para executar o Edge Microgateway em um contêiner do Docker, por padrão, esse contêiner redirecionará a stdout e a saída de erro para um arquivo localizado no contêiner no local: ${APIGEE_ROOT}/logs/edgemicro.log.

Para impedir que informações de registro sejam enviadas para edgemicro.log, use a nova variável LOG_CONSOLE_OUTPUT_TO_FILE ao executar o contêiner.

Para detalhes sobre como usar essa nova variável, consulte Como usar o Docker para o Edge Microgateway.

183057665 Engenharia de Torne os caminhos de arquivo edgemicro.pid e edgemicro.sock configuráveis.

Um novo parâmetro -w, --workdir para executar um contêiner do Docker com o Edge Microgateway permite especificar o caminho para o diretório em que os arquivos edgemicro.sock e edgemicro.pid precisam ser criados em um contêiner do Docker. Consulte Como usar o Docker para o Edge Microgateway.

191352643 Engenharia de A imagem do Docker para o Edge Microgateway foi atualizada para usar o NodeJS versão 12.22. Consulte Como usar o Docker para o Edge Microgateway.

Problemas de segurança corrigidos

Id do problema Descrição
CVE-2021-28860 No mixme do Node.js, antes da v0.5.1, um invasor pode adicionar ou alterar as propriedades de um objeto por "__proto__" por meio das funções mutate() e merge(). O atributo "poluído" será atribuído diretamente a cada objeto no programa. Isso vai colocar a disponibilidade do programa em risco, causando uma possível negação de serviço (DoS).
CVE-2021-30246 No pacote jsrsasign até 10.1.13 para Node.js, algumas assinaturas RSA PKCS#1 v1.5 inválidas são reconhecidas por engano como válidas. OBSERVAÇÃO: não há nenhum ataque prático conhecido.
CVE-2021-23358 O sublinhado do pacote de 1.13.0-0 e anteriores a 1.13.0-2, de 1.3.2 e anteriores a 1.12.1 são vulneráveis à injeção de código arbitrário pela função de modelo, especialmente quando uma propriedade variável é passada como um argumento, já que não é limpa.
CVE-2021-29469 Node-redis é um cliente Redis do Node.js. Antes da versão 3.1.1, quando um cliente estava no modo de monitoramento, o início da regex usado para detectar mensagens de monitoramento poderia causar retrocesso exponencial em algumas strings. Esse problema pode levar a uma negação de serviço. O problema foi corrigido na versão 3.1.1.
CVE-2020-8174 A imagem Docker foi atualizada para usar o Node.js versão 12.22

3.2.1

Na sexta-feira, 5 de março de 2021, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.2.1. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.2.1 3.2.1 3.2.1 3.2.1 3.2.1

Correções de bugs e melhorias:

Id do problema Tipo Descrição
180362102 Bug Foi corrigido um problema em que chaves JWK com valores nulos causavam falha nos aplicativos.

A condição nula agora é processada para evitar a transmissão de um valor nulo em jwkPublicKeys

Observação: essa correção exige que você faça upgrade do proxy edgemicro-auth.

179971737 Bug Foi corrigido um problema em que as respostas de status de destino 4XX / 5XX eram registradas como erros de proxy para proxies edgemicro_*.

Para transações do Edge Microgateway, as contagens incorretas de meta de erros foram mostradas no painel de análise de código de erro do Apigee Edge. Os códigos dos erros de destino estavam sendo contados como erros de proxy. Esse problema foi corrigido, e as contagens corretas de erros desejados agora são exibidas.

179674670 Engenharia de Foi adicionado um novo recurso que permite filtrar a lista de produtos de API inseridos em um JWT com base nos códigos de status dos produtos.

Produtos de API têm três códigos de status: Pendente, Aprovado e Revogado. Uma nova propriedade chamada allowProductStatus foi adicionada à política Definir variáveis JWT no proxy edgemicro-auth. Para usar essa propriedade para filtrar produtos de API listados no JWT:

  1. Abra o proxy edgemicro-auth no editor de proxy da Apigee.
  2. Adicione a propriedade allowProductStatus ao XML da política SetJWTVariables e especifique uma lista separada por vírgulas de códigos de status para filtrar. Por exemplo, para filtrar os status Pendente e Revogado:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript timeLimit="20000" async="false" continueOnError="false"
        enabled="true" name="Set-JWT-Variables">
        <DisplayName>Set JWT Variables</DisplayName>
        <FaultRules/>
        <Properties>
            <Property name="allowProductStatus">Pending,Revoked</Property>
        </Properties>
        <ResourceURL>jsc://set-jwt-variables.js</ResourceURL>
    </Javascript>
    
    

    Se você quiser que somente produtos Aprovados sejam listados, defina a propriedade da seguinte maneira:

    <Property name="allowProductStatus">Approved</Property>
  3. Salve o proxy.

    Se a tag Property não estiver presente, os produtos com todos os códigos de status serão listados no JWT.

    Para usar essa nova propriedade, você precisa fazer upgrade do proxy edgemicro-auth.

178423436 Bug Os valores de chave e secret transmitidos na CLI ou por meio de variáveis de ambiente ficam visíveis nos argumentos de linha de comando do explorador de processos.

Um problema foi relatado em que a chave e os valores secretos do Edge Microgateway que foram transmitidos de argumentos de linha de comando ou definidos por meio de variáveis de ambiente eram exibidos nos argumentos dos processos filhos/filhos do nó após o início do microgateway.

Para corrigir esse problema no cenário de variável de ambiente, os valores não são mais visíveis nos argumentos de linha de comando do explorador de processos.

Se os valores de chave e secret são transmitidos na linha de comando ao iniciar o microgateway, as configurações substituem todos os valores de variáveis de ambiente, se definidos. Nesse caso, os valores ainda ficam visíveis nos argumentos de linha de comando do explorador de processos.

178341593 Bug Um erro de documentação do plug-in apikeys foi corrigido.

O arquivo README do plug-in apikeys incluía incorretamente uma propriedade gracePeriod. Removemos essa propriedade e sua descrição do README.

A propriedade gracePeriod é implementada no plug-in oauth. Para usar o recurso de período de carência, use o plug-in oauth.

179366445 Bug Foi resolvido um problema em que o payload estava sendo descartado para todas as solicitações GET para os destinos.

É possível controlar o comportamento desejado com um novo parâmetro de configuração, edgemicro: enable_GET_req_body. Quando definido como true, o cabeçalho da solicitação transfer-encoding: chunked é adicionado a todas as solicitações GET e um payload GET, se presente, é enviado para o destino. Se for false (o padrão), o payload será removido silenciosamente antes que a solicitação seja enviada para o destino.

Exemplo:

edgemicro:
 enable_GET_req_body: true

De acordo com a RFC 7231, seção 4.3.1: GET (em inglês), um payload de solicitação GET não tem semântica definida. Portanto, ele pode ser enviado para o destino.

3.2.0

Na quinta-feira, 21 de janeiro de 2021, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.2.0. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.2.0 3.2.0 3.2.0 3.2.0 3.2.0

Correções de bugs e melhorias:

Id do problema Tipo Descrição
152640618 Bug Foi ativado o plug-in extauth para definir o cabeçalho x-api-key de modo que contenha o client_id no objeto de solicitação quando o token for válido. O x-api-key está disponível para plug-ins subsequentes.
168836123, 172295489, 176462355, 176462872 Engenharia de Inclusão de compatibilidade com o Node.js 14.
172376835 Bug Use a unidade de tempo correta para o endpoint /token no proxy edgemicro-auth.

Foi corrigido um problema em que o endpoint /token no proxy edgemicro-auth retornava expires_in em milissegundos. No entanto, de acordo com a Especificação do OAuth, ele precisa ser consistente com a unidade de tempo de refresh_token_expires_in, que é em segundos.

A correção não altera a duração do tempo de expiração, mas apenas a unidade de tempo. Isso só se aplica ao campo expires_in no payload de resposta do token de acesso. O token JWT no mesmo payload de resposta conteria dois campos, iat e exp, e eles são gerados corretamente, e sempre foram, com a unidade de tempo seconds.

Se os clientes dependiam do valor expires_in, em milissegundos, para atualizar os tokens antes que eles expirassem, aplicar essa correção sem modificar os clientes causaria atualizações muito mais frequentes e desnecessárias. Esses clientes precisarão ser modificados para considerar a mudança de unidade de tempo e manter o comportamento original.

Se os clientes sempre usaram os valores no token JWT para avaliar o período de atualização do token, eles não precisam mudar.

173064680 Bug Foi corrigido um problema em que o microgateway finalizava a solicitação de destino antes que todos os blocos de dados fossem processados.

Esse é um problema intermitente observado em solicitações de alto tamanho de payload e foi introduzido na versão 3.1.7.

174640712 Bug Adicionar o processamento adequado de dados aos plug-ins.

O processamento adequado de dados foi adicionado aos seguintes plug-ins: json2xml, accumulate-request, accumulate-response e header-uppercase. Para detalhes sobre o plug-in, consulte microgateway-plugins.

Versão 3.1.x

Correções de bugs e melhorias v.3.1.x

3.1.8

Na segunda-feira, 16 de novembro de 2020, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.1.8. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.1.8 3.1.9 3.1.7 3.1.3 3.1.2

Correções de bugs e melhorias:

Id do problema Tipo Descrição
169201295 Bug Os valores numéricos e booleanos foram analisados incorretamente nas tags de variáveis de ambiente.

O processamento de substituição de variáveis de ambiente analisou todos os valores como strings, o que resultou em erros de análise de valores booleanos ou numéricos. Por exemplo, edgemicro.port espera e exige um valor numérico. Foram feitas correções para oferecer suporte a valores booleanos e numéricos. Para detalhes sobre a configuração, consulte Como definir atributos de configuração com valores de variáveis de ambiente.

169202749 Bug A substituição da variável de ambiente não funcionava em alguns casos.

O processamento de substituição de variáveis de ambiente não estava funcionando para alguns atributos de configuração. Para informações sobre limitações, consulte Como definir atributos de configuração com valores de variáveis de ambiente.

168732942 Bug Foi corrigido um problema em que os escopos OAuth não restringiam o acesso ao proxy de API conforme esperado.

O fluxo /token no proxy edgemicro-auth gerou JWTs sem os escopos de produto corretos definidos no Edge como resultado de dois cenários diferentes: 1) o payload da solicitação para o fluxo /token não passou um parâmetro de escopo ou 2) um escopo inválido foi transmitido no payload da solicitação para o fluxo /token. Uma correção foi feita para retornar todos os escopos definidos nos produtos de API no Apigee Edge.

170609716 Bug Foi corrigido um problema em que o fluxo /refresh no proxy edgemicro-auth gerava um JWT sem apiProductList.

170708611 Bug Os escopos do produto da API não estão disponíveis para plug-ins personalizados.

Os escopos do produto da API não foram disponibilizados para plug-ins personalizados nem gravados no arquivo de configuração de cache. Consulte Sobre a função init() do plug-in para ver como os detalhes do escopo são disponibilizados para os plug-ins.

169810710 Engenharia de Chave e secret salvos no arquivo de configuração de cache.

A chave e o secret do Edge Microgateway eram salvos no arquivo yaml de configuração de cache a cada reinicialização/inicialização. Na versão 3.1.8, a chave e o secret não são mais salvos no arquivo de configuração de cache. Se a chave e o secret tiverem sido gravados anteriormente no arquivo de configuração de cache, eles serão removidos.

170708621 Engenharia de Não é possível desativar o plug-in do Google Analytics.

Nas versões anteriores do microgateway, o plug-in de análise era ativado por padrão e não era possível desativá-lo. Na versão 3.1.8, um novo parâmetro de configuração, enableAnalytics, foi introduzido para ativar ou desativar o plug-in de análise. Consulte a referência de configuração para mais detalhes.

159571119 Bug Recebimento de um erro nulo no hook onerror_request em plug-ins personalizados para tempo limite de resposta/soquete.

Foram feitas correções para preencher o código de status HTTP e a mensagem de erro corretos para eventos onerror_request e a mensagem de erro correta para eventos onerror_response.

3.1.7

Na quinta-feira, 24 de setembro de 2020, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.1.7. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.1.7 3.1.8 3.1.6 3.1.2 3.1.1

Correções de bugs e melhorias:

Id do problema Tipo Descrição
131708105 Bug O plug-in analytics processou incorretamente a resposta nula de chamadas axpublisher e fez com que os workers fossem encerrados.

133162200 Bug As informações do app do desenvolvedor não foram preenchidas na análise com respostas de status 403 causadas por caminhos de recursos de produtos não autorizados ou respostas 401 causadas por um token expirado ou inválido.

132194290 Bug Os registros de análise são descartados quando o Apigee Edge rejeita alguns registros de análise.

158618994 Bug Conexões excessivas do cliente Redis.

161404373 Bug No caso de uma resposta de status 404, o URI do proxy completo foi incluído na mensagem de resposta.
166356972 Bug

A execução do Edge Microgateway com a versão 12.13.x do Node.js ou mais recente resultou no seguinte erro ao executar plug-ins que transformam o payload da solicitação:

{"message":"write after end","code":"ERR_STREAM_WRITE_AFTER_END"}

168681746 Bug A atualização manual do Edge Microgateway com redisBasedConfigCache:true não estava funcionando.

149256174 Bug Os erros do plug-in OAuth não foram registrados para falhas de rede.

166517190 Bug Os dados jwk_public_keys não foram armazenados e buscados pelo sincronizador e armazenados no Redis.

141659881 Bug O tratamento de erros de certificado de destino inválido mostrou respostas de erro enganosas.

142808699 Bug O plug-in accesscontrol não estava processando as seções "allow" e "deny" corretamente.

Agora, o microgateway processa a seção de negação corretamente e respeita a ordem das seções "permitir" e "negar". Uma nova noRuleMatchActionpropriedade foi adicionada ao arquivo de configuração do microgateway para oferecer paridade com a política AccessControl do Apigee Edge. Consulte também o README do plug-in de controle de acesso (em inglês) no GitHub.

3.1.6

Na quinta-feira, 20 de agosto de 2020, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.1.6. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.1.6 3.1.7 3.1.5 3.1.1 3.1.1

Correções de bugs e melhorias:

Id do problema Tipo Descrição
163711992 Engenharia de Opções personalizadas de local de arquivo de chave e certificado para o comando rotakey.

Para ver detalhes sobre essas novas opções de comando, consulte Alternar chaves.

154838259 Bug Corrigir a rotação de chaves em várias instâncias em vários data centers

Para ver detalhes sobre essas novas opções de comando, consulte Alternar chaves.

145525133 Recurso da versão Alfa Novas métricas de plug-in

Consulte o README de Novas métricas de plug-in (link em inglês) no GitHub para ver mais detalhes.

159396879 Bug Remover o pacote Helper não usado
161092943 Bug A validação do caminho base estava incorreta

Antes da versão 3.1.6, a correspondência incorreta era feita para o caminho base do proxy quando ele não terminava com /.

Veja a seguir uma explicação mais detalhada sobre o comportamento anterior (que foi corrigido na versão 3.1.6):

Suponha que um proxy esteja configurado com o caminho de base: /hello/v1 e um caminho de destino para https://mocktarget.apigee.net. Agora, suponha que o proxy receba as seguintes solicitações:

Caminho da solicitação Caminho resolvido Resultado
/hello/v1/json https://mocktarget.apigee.net/json O caminho resolvido está correto, porque o caminho base de /hello/v1 tem correspondência correta.
Caminho da solicitação Caminho resolvido Resultado
/hello/v1json (link em inglês) https://mocktarget.apigee.netjson O caminho resolvido está incorreto porque /hello/v1 é uma substring de /hello/v1json. Como /hello/v1json não é um caminho válido, o Edge Microgateway gerou um erro 404. Na versão 3.1.6 e mais recentes, um erro 404 é gerado nesse caso.
160431789 Bug Plug-ins personalizados: o objeto de configuração passado para o init não é preenchido

A configuração do Apigee Edge é disponibilizada no objeto de configuração para todos os plug-ins personalizados após a mesclagem com o arquivo de configuração do Edge Microgateway. Consulte config.

162758808 Bug Nova configuração de cota para o armazenamento de apoio do Redis

É possível usar a configuração a seguir para especificar um armazenamento de apoio do Redis para cotas. Para detalhes, consulte Como usar um armazenamento de apoio do Redis para cota.

3.1.5

Na sexta-feira, 26 de junho de 2020, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.1.5. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.1.5 3.1.6 3.1.4 3.1.0 3.1.0

Correções de bugs e melhorias:

Id do problema Tipo Descrição
159210507 Engenharia de Configuração para excluir o processamento do plug-in

Um novo recurso de configuração foi adicionado para pular o processamento de plug-ins para URLs especificados. Para mais detalhes, consulte Como configurar URLs de exclusão para plug-ins.

156986819, 158529319 Bug Problemas com o plug-in json2xml foram corrigidos

Foram corrigidos problemas em que o plug-in produzia cabeçalhos Content-Type duplicados e em que os cabeçalhos não eram enviados ao destino como esperado em alguns casos.

156560067, 159688634 Engenharia de

Usar valores de variáveis de ambiente na configuração

Foi adicionado um recurso que permite especificar variáveis de ambiente usando tags no arquivo de configuração. As tags das variáveis de ambiente especificadas são substituídas pelos valores reais das variáveis de ambiente. As substituições são armazenadas apenas na memória. Elas não são armazenadas na configuração original nem nos arquivos em cache. Para mais detalhes, consulte Definir atributos de configuração com valores de variáveis de ambiente.

(155077210). Bug Um problema de formatação de registros foi corrigido.

Foi corrigido um problema em que o host de destino aparecia em registros com dois pontos externos anexados a ele.

153673257 Bug

(Somente no Edge para nuvem privada) Produtos com reconhecimento de Microgateway não extraídos

Foi corrigido um problema em que os produtos compatíveis com microgateways não estavam sendo extraídos. Esse problema existia no Edge apenas para instalações de nuvem privada.

154956890, 155008028, 155829434 Engenharia de Suporte para filtragem de produtos transferidos por download por atributos personalizados

Para mais detalhes, consulte Como filtrar produtos por atributos personalizados.

153949764 Bug Foi corrigido um problema em que o processo do Edge Microgateway falhava quando o arquivo de destino do registro estava cheio

O tratamento de exceções foi aprimorado para interceptar o erro e exibir uma mensagem no console.

155499600 Bug Problemas com a rotação de chaves e o upgrade do KVM foram corrigidos

Consulte também Como fazer rotação de chaves JWT.

3.1.4

Na sexta-feira, 23 de abril de 2020, lançamos a seguinte correção para o Edge Microgateway.

Correção de bug:

Correção de um problema de dependência na versão 3.1.3. A versão 3.1.3 foi marcada como descontinuada no repositório npm. Caso contrário, todas as correções de bugs e melhorias descritas na nota da versão 3.1.3 se aplicam a esta versão.

3.1.3

Na quarta-feira, 15 de abril de 2020, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.1.3. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.1.3 3.1.3 3.1.3 3.0.14 3.0.9

Correções de bugs e melhorias:

  • 153509313: foi corrigido um problema em que o módulo de depuração do Node.js resulta em vazamentos de memória. O problema existe nas versões 3.1.0, v3.1.1 e 3.1.2.
  • 153509313: foi corrigido um problema em que o mesmo ID de mensagem para duas transações diferentes era impresso na saída de geração de registros.
  • 151673570: foi corrigido um problema em que o Edge Microgateway não era atualizado para usar as novas APIs Apigee KVM. O Edge Microgateway agora usa os novos comandos para adicionar e atualizar os valores da KVM.
  • 152822846 – Nas versões anteriores, o Edge Microgateway foi atualizado para que o processamento do mapeamento de caminho de recursos corresponda ao do Apigee Edge. Nesta versão, foi corrigido um problema em que o padrão /literal_string/* não era processado corretamente. Por exemplo, /*/2/*. Consulte também Como configurar o comportamento de um caminho de recurso de '/', '/*' e '/**'.
  • 152005003 - Foram feitas alterações para permitir identificadores com escopo de organização e ambiente para cotas.
  • 152005003 - Foram feitas alterações para permitir identificadores com escopo de organização e ambiente para cotas. A combinação de "org + env + appName + productName" é usada como identificador de cota.

3.1.2

Na segunda-feira, 16 de março de 2020, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.1.3. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.1.2 3.1.2 3.1.2 3.0.13 3.0.9

Correções de bugs e melhorias:

  • 151285018: um aprimoramento do recurso foi feito para adicionar suporte ao proxy HTTP para o tráfego entre o Edge Microgateway e os destinos de back-end. Além disso, os problemas da compatibilidade com o proxy HTTP atuais entre o Edge Microgateway e o Apigee Edge foram corrigidos. Para mais detalhes, consulte:
  • 149101890: o código de notificação de registro para casos em que o servidor de destino ou o balanceador de carga encerra sua conexão foi alterado de ERROR para INFO.
  • 150746985: foi corrigido um problema em que o comando edgemicro verify não funcionava corretamente se redisBasedConfigCache: true ou quotaUri: https://%s-%s.apigee.net/edgemicro-auth estivessem presentes no arquivo de configuração.
  • 151284716 - Foi feita uma melhoria para fechar as conexões do servidor mais rapidamente quando os workers são reiniciados durante uma recarga.
  • 151588764: atualize a versão do Node.js na imagem do Docker usada para executar o Edge Microgateway em um contêiner do Docker para 12, porque o Node.js v8 está obsoleto.
  • 151306049: uma atualização da documentação foi feita para listar as APIs de gerenciamento do Apigee Edge usadas pelos comandos da CLI do Edge Microgateway. Consulte Quais APIs de gerenciamento o Edge Microgateway usa?.

3.1.1

Na quinta-feira, 20 de fevereiro, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.1.1. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.1.1 3.1.1 3.1.1 3.0.13 3.0.9

Correções de bugs e melhorias:

  • 146069701: foi corrigido um problema em que o módulo microgateway-core não respeitava as variáveis de ambiente HTTP_PROXY e HTTPS_PROXY. Com essa mudança, as configurações de proxy no arquivo de configuração YAML, se especificadas, serão ignoradas. Apenas as variáveis de ambiente serão usadas para especificar o proxy.

    Se você quiser especificar a configuração de proxy no arquivo de configuração, especifique também uma variável HTTP_PROXY que mencione o mesmo URL de proxy especificado no arquivo de configuração. Por exemplo, se você especificar a seguinte configuração:

    edge_config:
      proxy: http://10.128.0.20:3128
      proxy_tunnel: true
    

    Também é preciso especificar esta variável de ambiente:

    HTTP_PROXY=http://10.128.0.20:3128
  • 146320620: um novo parâmetro de configuração, edgemicro.headers_timeout, foi adicionado. Esse atributo limita o tempo (em milissegundos) que o analisador HTTP aguardará para receber os cabeçalhos HTTP completos. Por exemplo:
    edgemicro:
    keep_alive_timeout: 6000
    headers_timeout: 12000

    Internamente, o parâmetro define o atributo Server.headersTimeout do Node.js nas solicitações. Padrão: 5 segundos a mais do que o tempo definido com edgemicro.keep_alive_timeout. Essa configuração padrão impede que os balanceadores de carga ou proxies descartem a conexão de maneira incorreta.

  • 149278885 – Foi adicionado um novo recurso que permite definir o tempo limite da API de destino no nível do proxy de API em vez de usar uma configuração de tempo limite global.

    Se você definir a propriedade TargetEndpoint io.timeout.millis no proxy de API, o Edge Microgateway poderá recuperar essa propriedade e aplicar tempos limite específicos do endpoint de destino. Se esse parâmetro não for aplicado, o Edge Microgateway usará o tempo limite global especificado com edgemicro.request_timeout.

3.1.0

Na terça-feira, 21 de janeiro, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

Na tabela a seguir, listamos os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.1.0. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.1.0 3.1.0 3.1.0 3.0.12 3.0.9

Correções de bugs e melhorias:

  • 144187500: um novo evento de nível WARN será registrado quando a sinalização quotas.failOpen for acionada. Essa sinalização será acionada se ocorrer um erro de processamento de cota ou se a solicitação "quota apply" para o Edge não atualizar os contadores de cota remotos. Nesse caso, a cota será processada com base em contagens locais somente até que a próxima sincronização remota de cota seja realizada. Anteriormente, esse evento só era registrado quando o nível de registro era definido como DEBUG.

    Exemplo:

    2020-01-20T02:52:53.040Z [warn][localhost:8000][5][foo-eval][test][hello/][]
    [DbpGIq9jKfzPX8jvXEivhA0LPwE][f372cc30-3b2f-11ea-845f-a627f][quota][remote quota not
    available so processing locally, setting quota-failed-open for identifier: AppQuota60.Quota60]
    [GET][][][][]
  • 145023519: foi corrigido um problema em que transações em andamento ou novas eram afetadas sempre que o Edge Microgateway detectava uma alteração em um proxy de API. Agora, quando uma alteração é feita em um proxy, o Edge Microgateway atualiza o cache, e os nós de trabalho são reiniciados. Com essa mudança, as transações em andamento e as novas chamadas de API enviadas ao microgateway não são afetadas.
  • 146378327: o nível de registro de sourceRequest, targetRequest e targetResponse mudou para o nível INFO.
  • 146019878 - Foi corrigida uma discrepância entre a latência calculada para "Desempenho do proxy da API" na análise do Edge e nos eventos de registro sourceResponse/targetResponse do Edge Microgateway. Agora, a latência na análise do Edge e nos eventos de registro do Microgateway está alinhada.
  • Mudanças relacionadas à lógica de correspondência de padrões:
    • 147027862: o plug-in OAuth foi atualizado para oferecer suporte aos seguintes padrões de correspondência de caminho de recurso, conforme especificado nos produtos de API:
      • /{literal}**
      • /{literal}*
      • Qualquer combinação dos dois padrões acima

      Com essa alteração, o plug-in Edge Microgateway agora segue a mesma correspondência de padrão do Apigee Edge, conforme explicado em Como configurar o comportamento de um caminho de recurso de "/", "/*" e '/**'.

    • 145644205 – Atualização da lógica de correspondência de padrão do plug-in apiKeys para corresponder ao plug-in OAuth.
  • 143488312: foi corrigido um problema em que espaços à esquerda ou à direita no parâmetro do ID do cliente faziam com que a criação da lista de produtos JWT ficasse vazia para solicitações de token OAuth e de chave de API.
  • 145640807 e 147579179: foi adicionado um novo recurso que permite que uma instância especial do Edge Microgateway chamada "o sincronizador" recupere dados de configuração do Apigee Edge e os grave em um banco de dados local do Redis. Outras instâncias de microgateway podem ser configuradas para ler os dados de configuração do banco de dados. Esse recurso adiciona um nível de resiliência ao Edge Microgateway. Ele permite que instâncias de microgateway sejam iniciadas e funcionem sem precisar se comunicar com o Apigee Edge. Para mais detalhes, consulte Como usar o sincronizador.

    No momento, o recurso de sincronia é compatível com o Redis 5.0.x.

Versão 3.0.x

Correções de bugs e melhorias v.3.0.x

3.0.10

Na sexta-feira, 8 de novembro, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.0.10. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.0.10 3.0.8 3.0.8 3.0.11 3.0.8

Correções de bugs e melhorias:

  • 142677575 – Foi feita uma atualização de recurso para que a correspondência de padrões dos caminhos de recursos usados nos produtos de API do Edge Microgateway agora se alinhe à correspondência de padrão de caminho de recursos usada pelo Apigee Edge, conforme descrito em Como configurar o comportamento de um caminho de recurso de '/', '/*' e '/**'.

    Observação: se você usar um padrão de recurso composto, como /*/2/**, verifique se o proxy edgemicro_auth foi adicionado a um produto de API autônomo. Em seguida, inclua esse produto no app do desenvolvedor do proxy, conforme ilustrado na captura de tela a seguir:

    alt_text

    Observação: a propriedade de configuração features.isSingleForwardSlashBlockingEnabled, conforme descrito em Como configurar o comportamento de um caminho de recurso de "/", "/*" e '/**', não é compatível com o Edge Microgateway.

  • 143740696: a estrutura de configuração do quotas mudou. Consulte também as notas da versão 3.0.9. A propriedade quotas é usada para configurar o plug-in de cota. A mudança na estrutura foi feita para melhorar a clareza dos elementos de configuração. Para configurar o plug-in de cota, use a seguinte configuração YAML. A propriedade de configuração é chamada de quotas. Para detalhes sobre as propriedades de configuração de quotas individuais, consulte Opções de configuração para cota.

    edgemicro:
      home: ../gateway
      port: 8000
      max_connections: -1
      max_connections_hard: -1
      logging:
        level: info
        dir: /var/tmp
        stats_log_interval: 60
      plugins:
        dir: ../plugins
        sequence:
          - oauth
          - quota
    quotas:
      bufferSize:
        hour: 20000
        minute: 500
        default: 10000
      useDebugMpId: true
      failOpen: true
    ...
  • 141750056: foi adicionado um novo recurso que permite usar o Redis como armazenamento de backup de cota. Se useRedis for verdadeiro, o módulo volos-quota-redis será usado. Quando verdadeiro, a cota é restrita apenas às instâncias do Edge Microgateway que se conectam ao Redis. Se for falso, o módulo volos-quota-apigee será usado como o armazenamento secundário, e o contador de cotas será global. Para mais detalhes, consulte Opções de configuração de cotas. Por exemplo:
    edgemicro:
    ...
    quotas:
      useRedis: true
      redisHost: localhost
      redisPort: 6379
      redisDb: 1
    .
  • 140574210 – O tempo de expiração padrão dos tokens gerados pelo proxy edgemicro-auth foi alterado de 108.000 milissegundos (1,8 minuto) para 1800 segundos (30 minutos).
  • 143551282: para oferecer suporte a organizações ativadas por SAML, o comando edgemicro genkeys foi atualizado para incluir um parâmetro ‑‑token. Com esse parâmetro, é possível usar um token OAuth para autenticação em vez de nome de usuário/senha. Para mais detalhes, consulte Gerar chaves.

3.0.9

Na sexta-feira, 11 de outubro, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.0.9. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.0.9 3.0.7 3.0.7 3.0.10 3.0.7

Correções de bugs e melhorias:

  • 141989374: um novo recurso "fail open" foi adicionado ao plug-in de cota. Quando esse recurso estiver ativado, se ocorrer um erro de processamento de cota ou se a solicitação de aplicação de cota ao Edge não atualizar os contadores de cota remotos, a cota será processada com base nas contagens locais somente até a próxima sincronização remota bem-sucedida. Em ambos os casos, uma sinalização quota-failed-open é definida no objeto da solicitação.

    Para ativar o recurso "fail open" de cota, defina a seguinte configuração:

    quotas :
     failOpen : true

    Observação: além disso, o nome da flag do objeto de solicitação fail-open do plug-in OAuth foi alterado para oauth-failed-open.

  • 142093764: uma alteração de configuração foi feita no proxy edgemicro-auth para evitar excedentes de cota. A mudança define o tipo de cota como agenda. Para usar essa melhoria, você precisa atualizar seu edgemicro-auth para a versão 3.0.7 ou mais recente.
  • 142520568: um novo recurso foi adicionado para ativar a geração de registros do ID do MP (processador de mensagens) nas respostas de cota. Para usar esse recurso, você precisa atualizar o proxy edgemicro-auth para a versão 3.0.7 ou mais recente e definir a seguinte configuração:
    quotas:
      useDebugMpId: true

    Quando useDebugMpId estiver definido, as respostas de cota do Edge vão conter o ID do MP e serão registradas pelo Edge Microgateway. Exemplo:

    {
        "allowed": 20,
        "used": 3,
        "exceeded": 0,
        "available": 17,
        "expiryTime": 1570748640000,
        "timestamp": 1570748580323,
        "debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
    }

3.0.8

Na quinta-feira, 26 de setembro, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.0.8. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.0.8 3.0.6 3.0.6 3.0.9 3.0.6

Correções de bugs e melhorias:

  • 140025210: um novo recurso de falha na abertura foi adicionado. Esse recurso permite que o processamento da API continue se um token JWT expirado não puder ser atualizado devido a um erro de conexão que impede uma chamada de verificação de chave de API bem-sucedida para o proxy edgemicro-auth.

    Com esse recurso, é possível definir um período de carência em que o token antigo permanece em cache e é reutilizado até que o período de carência expire. O recurso permite que o Edge Microgateway continue processando solicitações em caso de falha temporária de conexão. Quando a conectividade é retomada e ocorre uma chamada "Verificar chave de API" bem-sucedida, um novo JWT é buscado e substitui o JWT antigo no cache.

    Para configurar o novo recurso de "fail open", faça o seguinte:

    1. Defina as seguintes propriedades na estrofe oauth no arquivo de configuração do Edge Microgateway:
      oauth:
        failOpen: true
        failopenGraceInterval: time_in_seconds
        cacheKey: true
        ...

      Exemplo:

      oauth:
        failOpen: true
        failopenGraceInterval: 5
        cacheKey: true
        ...

      Neste exemplo, o token antigo será usado por cinco segundos se não for possível atualizá-lo devido a um problema de conectividade. Após 5 segundos, um erro de autenticação será retornado.

  • 141168968: uma atualização foi feita para incluir o correlation_id em toda a saída de registro do plug-in. Além disso, os níveis de alguns registros foram alterados para error, conforme necessário.
  • 140193349: uma atualização foi feita no proxy edgemicro-auth para exigir que a chave e o secret do Edge Microgateway sejam verificados em todas as solicitações "Verificar chave de API". O Edge Microgateway foi atualizado para sempre enviar a chave e o secret em todas as solicitações de verificação de chave de API. Essa alteração impede que os clientes acessem um JWT com apenas uma chave de API.
  • 140090250 - Foi feita uma atualização para adicionar log de diagnóstico para processamento de cota. Com essa mudança, é possível correlacionar a saída de registros do quoto com o restante dos registros do Edge Microgateway.

3.0.7

Na quinta-feira, 12 de setembro, lançamos as seguintes correções e melhorias no Edge Microgateway.

Versões dos componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.0.7. Como cada componente é um projeto separado, os números de versão podem não corresponder à versão principal do produto:

microgateway core config plug-ins edgeauth (em inglês)
3.0.7 3.0.5 3.0.5 3.0.8 3.0.5

Correções de bugs e melhorias:

  • 140075602: uma atualização foi feita no plug-in OAuth para retornar um código de status 5xx quando apropriado. Antes, o plug-in só retornava códigos de status 4xx em todos os casos diferentes de 200. Agora, para qualquer resposta de mensagem que não tenha o status 200, o código exato 4xx ou 5xx será retornado, dependendo do erro.

    Esse recurso fica desativado por padrão. Para ativar esse recurso, adicione a propriedade oauth.useUpstreamResponse: true à sua configuração do Edge Microgateway. Exemplo:

    oauth:
      allowNoAuthorization: false
      allowInvalidAuthorization: false
      gracePeriod: 10
      useUpstreamResponse: true
  • 140090623 – Na versão 3.0.6, uma nova propriedade de configuração foi adicionada, quota.quotaUri. Defina esta propriedade de configuração se você quiser gerenciar cotas pelo proxy edgemicro-auth implantado na sua organização. Se essa propriedade não for definida, o endpoint de cota será definido por padrão como o endpoint interno do Edge Microgateway. Por exemplo:
    edge_config:
      quotaUri: https://%s-%s.apigee.net/edgemicro-auth

    Na versão 3.0.7, o edgemicro-auth foi atualizado para aceitar essa nova configuração. Para usar a propriedade quotaUri, faça upgrade para o proxy edgemicro-auth mais recente. Para mais detalhes, consulte Como fazer upgrade do proxy Edgemicro-auth.

  • 140470888: um cabeçalho de autorização foi adicionado a chamadas de cota para fornecer autenticação. Além disso, o proxy edgemicro-auth foi modificado para remover "organização" do identificador de cota. Como o endpoint da cota reside na organização do cliente, o identificador da cota não é mais necessário.
  • 140823165 – O seguinte nome de propriedade:
    edgemicro:
        keepAliveTimeout

    foi documentado incorretamente na versão 3.0.6. O nome correto da propriedade é:

    edgemicro:
        keep_alive_timeout
  • 139526406: Foi corrigido um bug em que uma contagem de cota incorreta ocorria se um app de desenvolvedor tivesse vários produtos. A cota agora foi aplicada corretamente para cada produto em um app que tenha vários produtos. A combinação de "appName + productName" é usada como o identificador de cota.

3.0.6

Na quinta-feira, 29 de agosto, lançamos as seguintes correções e melhorias no Edge Microgateway.

  • 138633700: nova propriedade de configuração, keepAliveTimeout. Essa propriedade permite definir o tempo limite do Edge Microgateway (em milissegundos). (Padrão: 5.000 milissegundos)

    Exemplo:

    edgemicro:
      keep_alive_timeout: 600
  • 140090623: foi adicionada uma nova propriedade de configuração, quotaUri. Defina esta propriedade de configuração se você quiser gerenciar cotas com o proxy edgemicro-auth implantado na sua organização. Se essa propriedade não for definida, o endpoint de cota será padronizado como o endpoint interno do Edge Microgateway. Por exemplo:
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

    Para usar esse recurso, primeiro você precisa implantar a versão mais recente do proxy edgemicro-auth na sua organização. Para mais detalhes, consulte Como fazer upgrade do proxy Edgemicro-auth.

  • 138722809: nova propriedade de configuração, stack_trace. Essa propriedade permite controlar se os stack traces aparecem ou não nos arquivos de registro. Por exemplo:
    stack_trace: false

    Se stack_trace estiver definido como true, o stack trace será impresso nos registros. Se for definido como false, o stack trace não será impresso nos registros.

3.0.5

Na quinta-feira, 15 de agosto, lançamos as seguintes correções e melhorias no Edge Microgateway.

Bugs corrigidos
  • 139005279: foi corrigido um problema em que o comando edgemicro status não retornava o número correto de processos de worker.
  • 138437710: foi corrigido um problema na classe ExitCounter que impedia a gravação do registro adequado.
Melhorias gerais nas mensagens de registro
  • 139064652: foi adicionado o recurso de adicionar níveis de geração de registros trace e debug a registros de eventos e do sistema. Por enquanto, apenas a capacidade de adicionar esses níveis de registro foi adicionada. Atualmente, os níveis de registro disponíveis são info, warn e error.
  • 139064616 - A saída de registro foi padronizada para todos os log statements do console. As instruções de geração de registros do console agora incluem estes atributos:
    • Carimbo de data/hora
    • Nome do componente
    • ID do processo
    • Mensagem de registro do console
Melhorias nas mensagens de registro secretas e de chave JWT
  • 138413755 – Melhorar as mensagens de registro da chave JWT e relacionadas ao secret para estes comandos da CLI: cert, Verify, upgradekvm, token, genkeys, revogarkeys, rotationkey e configure.
Melhorias nas mensagens de erro de tempo limite e conexão recusada
  • 138413577: adição e melhoria do tratamento de erros para tempos limite do serviço de back-end.
  • 138413303: adição e melhoria do tratamento de erros para tempos limite de resposta e soquete.
  • 138414116 – Adicione e melhore o tratamento de erros para "conexão recusada".

3.0.4

Na quinta-feira, 1o de agosto, lançamos as seguintes correções e melhorias no Edge Microgateway.

  • 134445926 – Melhorias na autenticação interna do Edge Microgateway.
  • 137582169 - Resolução de um problema em que processos indesejados eram iniciados. Os processos extras faziam com que os plug-ins recarregassem e usavam memória excessiva. Agora o Edge Microgateway mantém o número de processos dentro do limite esperado.
  • 137768774 – Melhorias nas mensagens de registro:
    • Limpeza de registros de transação (solicitação).
    • Inclusão de mais mensagens de registro quando necessário.
    • As mensagens de registro de transação (solicitação) foram movidas da saída do console para o arquivo de registro relevante.
    • Atualização dos registros do console para usar uma função centralizada de geração de registros.
  • 138321133, 138320563 - Alteração interna básica no buffer de cota para permitir melhorias futuras de cota.

3.0.3

Na terça-feira, 23 de julho, lançamos as seguintes correções e melhorias no Edge Microgateway.

  • Melhorias no Logging: os registros de ambiente de execução atuais usam uma nova função eventLog() que captura e registra os dados do ambiente de execução em um formato consistente. As informações do registro incluem:
    • Carimbo de data/hora (ISO 8601: AAAA-MM-DDTHH:mm:ss.sssZ).
    • Nível de registro (erro, aviso ou informação).
    • "Nome do host": o nome do host da solicitação no cabeçalho da solicitação.
    • ID de processo: se você está executando um cluster de processos em Node.js, esse é o ID do processo em que a geração de registros ocorreu.
    • Nome da organização da Apigee.
    • Nome do ambiente na organização.
    • Nome do proxy de API.
    • Endereço IP do cliente.
    • ID de cliente.
    • ID de correlação (não definido no momento).
    • Nome do componente Edge Microgateway.
    • Mensagem personalizada: alguns objetos podem imprimir informações adicionais que são transmitidas para essa propriedade de erro.
    • Método de solicitação (se for uma solicitação HTTP).
    • Código de status da resposta (se for uma solicitação HTTP).
    • Mensagem de erro.
    • Código de erro - se um objeto incluir um código de erro, ele será impresso nessa propriedade.
    • Tempo gasto.
    • marcador de fim de linha do sistema operacional.

    Valores de propriedade nulos resultam em colchetes vazios, [].

    O exemplo a seguir mostra o formato do registro:

    Timestamp [level][hostname][ProcessId][Org][Environment][APIProxy][ClientIp][ClientId][][component][customMessage][reqMethod][respStatusCode][errMessage][errCode][timeTaken]

    (137770055)

  • Desempenho: os produtos da API não estavam sendo filtrados com base no ambiente. Esse problema foi corrigido. (135038879)
  • Diversas integrações de testes funcionais e melhorias na qualidade do código.

3.0.2

Na quarta-feira, 3 de julho de 2019, lançamos as seguintes correções e melhorias no Edge Microgateway.

Qualidade do código: o código foi analisado em relação à qualidade, e foram feitas alterações nele para atender aos padrões de qualidade solicitados pelos usuários. Resolvemos erros e avisos de qualidade de código derivados de JSHint. Alguns erros de código reais foram identificados e reparados como resultado. Todos os módulos do Apigee Edge Microgateway passaram por esse processo. Consulte as confirmações de 28 de junho e 2 de julho para microgateway-config, microgateway-core, microgateway-plugins e microgateway. Todos os módulos com mudanças na qualidade do código foram testados com ferramentas internas que verificam a execução do Edge Microgateway para casos de uso de clientes.

3.0.1

Na sexta-feira, 21 de junho de 2019, lançamos as seguintes correções e melhorias no Edge Microgateway.

  • 134834551 – Mudar as versões compatíveis do Node.js com o Edge Microgateway
    (Versões compatíveis com o Node.js: 8 e 12; as versões 7, 9 e 11 são experimentais)
  • 134751883: falha no Edge Microgateway ao recarregar sob carga
  • 134518428: o endpoint de produtos do Edge Microgateway retorna 5XX se o padrão de filtro estiver incorreto
  • 135113408 - Os workers precisarão ser reiniciados se forem encerrados inesperadamente
  • 134945852: o tokenCacheSize não é usado no plug-in OAuth
  • 134947757 - definir cacheTTL no plug-in OAuth
  • 135445171 - O cálculo do período de carência no OAuth está incorreto
  • Usar o módulo memord fornecido com a instalação do Edge Microgateway
  • 135367906 – Auditoria de segurança

Versão 2.5.x

Novos recursos e melhorias v.2.5.x

(Corrigido na versão 2.5.38, 07/06/2019)

JWTs formatados incorretamente podem causar falhas nos workers ao usar o cache de tokens. Corrigido no módulo de microgateways-plugins do Edge. (b/134672029).

(Adicionada 2.5.37) Adicione a opção de CLI edgemicro-cert -t.

A opção edgemicro cert -t permite especificar um token OAuth para autenticar as APIs de gerenciamento. Consulte também Gerenciar certificados.

(Adicionada na versão 2.5.35) Inclusão de suporte para depurar o Edge Microgateway usando edgemicroctl.

É possível usar a sinalização mgdebug com edgemicroctl. Consulte também Tarefas de integração do Kubernetes.

(Adicionado 2.5.35) Ativar um build do Windows para edgemicroctl.

(Adicionada 2.5.31) Nova API Edgemicro-auth/token

Foi adicionada uma nova API Edgemicro-auth/token que permite transmitir o cliente/secret como um cabeçalho de autorização básica codificado em Base64 e o Grants_type como um parâmetro de formulário. Consulte Receber tokens do portador diretamente.

(Corrigido 2.5.31) A configuração particular não respeita a sinalização de token

Foi corrigido um problema em que a configuração do Edge Microgateway para usar um token de acesso do OAuth2 no Edge para nuvem privada não funcionava corretamente (o token não foi respeitado).

Docker: suporte para o uso de certificados autoassinados

(Adicionado 2.5.29) Se você estiver usando uma autoridade de certificação (CA) em que o Node.js não é confiável por padrão, use o parâmetro NODE_EXTRA_CA_CERTS ao executar um contêiner do Docker com o Edge Microgateway. Para mais detalhes, consulte Como usar uma AC em que o Node.js não confia.

Docker: suporte para TLS

(Adicionado 2.5.29) O Edge Microgateway em execução em um contêiner do Docker agora oferece suporte ao TLS para solicitações recebidas para o servidor do Edge Microgateway (solicitações no sentido norte) e para solicitações de saída do Edge Microgateway para um aplicativo de destino (solicitações de destino sul).

Os exemplos a seguir explicam detalhadamente como definir essas configurações de TLS:

Nestes exemplos, você verá como usar o ponto de montagem /opt/apigee/.edgemicro do contêiner para carregar os certificados, que são mencionados no arquivo de configuração do Edge Microgateway.

Docker: suporte para proxy de solicitação

(Adicionado 2.5.27) Se você executar o Edge Microgateway em um contêiner do Docker, poderá usar estas opções para controlar o comportamento do proxy quando o microgateway estiver sendo executado por trás de um firewall:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

Para detalhes, consulte Executar o Edge Micro como um contêiner do Docker.

Docker: instruções atualizadas de plug-in (em inglês)

(Adicionado 2.5.27) Se você executar o Edge Microgateway em um contêiner do Docker, agora terá duas opções para implantar plug-ins. Uma opção nova é usar um ponto de montagem do Docker. A outra opção que existia anteriormente não foi alterada. No entanto, o Dockerfile foi atualizado. Para mais detalhes, consulte os seguintes links:

Suporte a novos tokens OAuth para o comando de upgrade do KVM

(Adicionado 2.5.27) É possível usar um token OAuth com o comando upgradekvm. Para mais detalhes, consulte Como fazer upgrade da KVM.

Como separar APIs no Edge Analytics

(Adicionado 2.5.26) Novas sinalizações de plug-in de análise permitem separar um caminho de API específico para que ele apareça como um proxy separado nos painéis do Edge Analytics. Por exemplo, é possível separar as APIs de verificação de integridade para evitar confundi-las com chamadas de API reais. Para mais informações, consulte Como excluir caminhos da análise.

Como configurar um proxy local

(Adicionado 2.5.25) Com um proxy local, não é necessário criar manualmente um proxy com reconhecimento de microgateway no Apigee Edge. Em vez disso, o microgateway vai usar o caminho base do proxy local. Para mais informações, consulte Como usar o modo de proxy local.

Como usar o modo independente

(Adicionado 2.5.25) É possível executar o Edge Microgateway desconectado completamente de qualquer dependência do Apigee Edge. Esse cenário, chamado de modo independente, permite executar e testar o Edge Microgateway sem uma conexão de Internet. Consulte Como executar o Edge Microgateway no modo independente.

Como revogar chaves

(Adicionado 2.5.19) Foi adicionado um novo comando da CLI que revoga as credenciais de chave e secret de uma configuração do Edge Microgateway.

edgemicro revokekeys -o [organization] -e [environment] -u [username] -k [key] -s [secret]
Saiba mais em Revogar chaves.

Suporte ao Docker

(Adicionado 2.5.19) Agora é possível fazer o download da versão mais recente do Edge Microgateway como uma imagem Docker:

docker pull gcr.io/apigee-microgateway/edgemicro:latest

Suporte ao Kubernetes

(Adicionado 2.5.19) É possível implantar o Edge Microgateway como um serviço ou como um gateway de arquivo secundário na frente de serviços implantados em um cluster do Kubernetes. Consulte: Visão geral da integração do Edge Microgateway com o Kubernetes.

Suporte para a opção TCP nodelay

(Adicionado na versão 2.5.16) Uma nova configuração, nodelay, foi adicionada à configuração do Edge Micro.

Por padrão, as conexões TCP usam o algoritmo Nagle para armazenar dados em buffer antes de enviá-los. Definir nodelay como true desativa esse comportamento (os dados serão desligados imediatamente cada vez que socket.write() for chamado). Consulte também a documentação do Node.js para mais detalhes.

Para ativar nodelay, edite o arquivo de configuração do Edge Micro da seguinte maneira:

edgemicro:
  nodelay: true
  port: 8000
  max_connections: 1000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Novas opções de CLI para monitoramento contínuo

(Adicionado 2.5.12) Novos parâmetros foram adicionados ao comando edgemicro forever. Esses parâmetros permitem especificar o local do arquivo forever.json e iniciar ou interromper o processo em segundo plano "Forever". Consulte também Monitoramento contínuo.

ParâmetroDescrição
-f, --fileEspecifica o local do arquivo forever.json.
-a, --actionstart ou stop. O padrão é iniciar.

Por exemplo:

Para começar "Sempre":

edgemicro forever -f ~/mydir/forever.json -a start

Para parar "Sempre":

edgemicro forever -a stop

Rotação de chaves JWT

Foi adicionado um novo recurso que permite alternar os pares de chaves públicas/privadas usados para gerar os tokens JWT usados para a segurança OAuth no Edge Microgateway. Consulte Como fazer a rotação de chaves JWT.

Como filtrar proxies de API transferidos por download

Por padrão, o Edge Microgateway faz o download de todos os proxies na sua organização do Edge que começam com o prefixo de nomenclatura "edgemicro_". É possível alterar esse padrão para fazer o download de proxies com nomes que correspondem a um padrão. Consulte Como filtrar proxies transferidos por download.

Como especificar produtos sem proxies de API

No Apigee Edge, é possível criar um produto de API que não contenha proxies de API. Essa configuração de produto permite que uma chave de API associada a esse produto funcione com qualquer proxy implantado na sua organização. A partir da versão 2.5.4, o Edge Microgateway é compatível com essa configuração do produto.

Suporte para monitoramento permanente

O Edge Microgateway tem um arquivo forever.json que pode ser configurado para controlar quantas vezes e com quais intervalos o Edge Microgateway precisa ser reiniciado. Esse arquivo configura um serviço chamado Always-monitor, que gerencia o Forever de maneira programática. Consulte Monitoramento permanente.

Gerenciamento central do arquivo de configuração do Edge Micro

Se você executa várias instâncias do Edge Microgateway, pode gerenciar as configurações delas em um único local. Para fazer isso, especifique um endpoint HTTP em que o Edge Micro pode fazer o download do arquivo de configuração. Consulte Como especificar um endpoint de arquivo de configuração.

Suporte para a opção de CLI definitivamente

(Adicionado 2.5.8) Use o comando edgemicro forever [package.json] para especificar o local do arquivo forever.json. Antes da adição desse comando, o arquivo de configuração precisava estar no diretório raiz do Edge Microgateway.

Exemplo:

edgemicro forever ~/mydir/forever.json

Adição da opção configUrl para recarregar o comando

(Adicionado 2.5.8) Agora é possível usar a opção --configUrl ou -u com o comando edgemicro reload.

Período de carência para discrepâncias de tempo do JWT

(Adicionado 2.5.7) Um atributo gracePeriod na configuração OAuth ajuda a evitar erros causados por pequenas discrepâncias entre o relógio do seu sistema e os horários "Não antes" (nbf) ou "Emitido em" (iat) especificados no token de autorização JWT. Defina esse atributo como o número de segundos para permitir essas discrepâncias. Consulte Atributos OAuth.

(Adicionado 2.5.7) Um atributo gracePeriod na configuração OAuth ajuda a evitar erros causados por pequenas discrepâncias entre o relógio do seu sistema e os horários "Não antes" (nbf) ou "Emitido em" (iat) especificados no token de autorização JWT. Defina esse atributo como o número de segundos para permitir essas discrepâncias. Consulte Atributos OAuth.

Bugs corrigidos v2.5.x

  • (Problema 236) Correção de erro de digitação na limpeza do cache.
  • (Problema 234) Falha ao recarregar o Edge Microgateway 2.5.35.
  • Problema 135: erro "seguro" de referência de host virtual inválida ao usar a opção -v. Essa correção modifica o proxy Edgemicro-auth antes da implantação para garantir que os hosts virtuais correspondam exatamente ao que está especificado na sinalização "-v". Além disso, é possível especificar qualquer número de e qualquer nome para o host virtual (não mais restrito ao padrão e seguro).
  • Problema no 141: o comando edgemicro refresh não é compatível com a opção de arquivo de configuração -c. Esse problema foi corrigido.
  • (Problema 142) O Edge Microgateway reclama de criptografia descontinuada no momento da instalação. Esse problema foi corrigido.
  • (Problema 145) A cota não funciona com o Edge Microgateway. Esse problema foi corrigido.
  • Problema da comunidade Apigee: https://community.apigee.com/questions/33149/emg-jwt-token-validated-against- Privacidade-api-proxies-a.html#answer-33336 (em inglês) Token JWT validado com proxies de API e URI de recursos no OAUTH. Esse problema foi corrigido.
  • (Problema da comunidade Apigee: https://community.apigee.com/questions/47846/microgateway-not-working-with-oauth.html) O Microgateway não está funcionando com o OAuth. Esse problema foi corrigido.
  • Correção do pidPath no Windows.
  • (Problema 157) O problema que causava a mensagem de erro a seguir foi corrigido: ReferenceError: deployProxyWithPassword não definido.
  • (Problema 169) Atualizar dependências do Node.js (auditoria de npm)
  • O proxy edgemicro-auth agora usa as políticas do Edge JWT. O proxy não depende mais do Node.js para oferecer suporte ao JWT.

Versão 2.4.x

Novos recursos e melhorias v.2.4.x

1. Defina um alias personalizado para o proxy Edgemicro-auth (PR 116)

É possível alterar o caminho base padrão para o proxy edgemicro-auth. Por padrão, o caminho base é /edgemicro-auth. Para alterá-lo, use a sinalização -x no comando edgemicro configure.

Exemplo:

edgemicro configure -x /mypath …


2. Suporte a caracteres curinga para caminhos base (PR 77)

É possível usar um ou mais caracteres curinga "*" no caminho base de um proxy edgemicro_*. Por exemplo, um caminho base de /team/*/members permite que os clientes chamem https://[host]/team/blue/members e https://[host]/team/green/members sem que você precise criar novos proxies de API para dar suporte a novas equipes. /**/ não é compatível.

Importante: a Apigee NÃO aceita o uso de um caractere curinga "*" como o primeiro elemento de um caminho base. Por exemplo, NÃO é possível usar este comando: /*/search.

3. Caminho de configuração personalizado adicionado à CLI para configuração de nuvem privada (PR 99)

Por padrão, o arquivo de configuração do microgateway está em ./config/config.yaml. Nos comandos init, configure e start, especifique um caminho de configuração personalizado na linha de comando usando as sinalizações -c ou --configDir. Correção de um problema em que um diretório de configuração personalizado para instalações de nuvem privada não era reconhecido.

Exemplo:

edgemicro start -o docs -e test -k abc123 -s xyz456 -c /home/microgateway/config

4. Respeite as variáveis *_PROXY (PR 61)

Se o Edge Microgateway estiver instalado atrás de um firewall e não puder se comunicar com o Apigee Edge na nuvem pública, há duas opções a serem consideradas:

Opção 1:

A primeira opção é definir a opção "edgemicro: proxy_tunnel" como "true" no arquivo de configuração do microgateway:

edge_config:
   proxy: http://10.224.16.85:3128
   proxy_tunnel: true

Quando proxy_tunnel é true, o Edge Microgateway usa o método CONNECT HTTP para encapsular solicitações HTTP em uma única conexão TCP. O mesmo acontece se as variáveis de ambiente para configurar o proxy estiverem com o TLS ativado.

Opção 2:

A segunda opção é especificar um proxy e definir proxy_tunnel como false no arquivo de configuração do microgateway. Exemplo:

edge_config:
   proxy: http://10.224.16.85:3128
   proxy_tunnel: false

Nesse caso, é possível definir as seguintes variáveis para controlar os hosts de cada proxy HTTP que você quer usar ou quais hosts não podem processar proxies Edge Microgateway: HTTP_PROXY, HTTPS_PROXY e NO_PROXY. É possível definir NO_PROXY como uma lista delimitada por vírgulas de domínios que o Edge Microgateway não pode usar como proxy. Exemplo:

export HTTP_PROXY='http://localhost:3786'
export HTTPS_PROXY='https://localhost:3786'

Para mais informações sobre essas variáveis, consulte:

https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables


5. Definir um tempo limite personalizado para solicitações de destino (PR 57)

É possível definir um tempo limite personalizado para solicitações de destino com esta configuração:

edgemicro:
    request_timeout: 10

O tempo limite é definido em segundos. Se ocorrer um tempo limite, o Edge Microgateway responderá com um código de status 504.

6. Respeite as mensagens de status HTTP personalizadas na resposta de destino (PR 53)

O Edge Microgateway respeita as mensagens de status HTTP personalizadas definidas na resposta de destino. Nas versões anteriores, as mensagens de status enviadas do destino eram substituídas pelos padrões do Node.js.

7. O cabeçalho X-Forwarded-For pode definir client_ip para análise.

Se estiver presente, o cabeçalho X-Forwarded-For vai definir a variável client_ip que é informada no Edge Analytics. Esse recurso permite saber o IP do cliente que enviou uma solicitação ao Edge Microgateway.

8. Alterações no plug-in OAuth

O plug-in OAuth oferece suporte à verificação da chave de API e à verificação do token de acesso OAuth. Antes dessa mudança, o plug-in aceitava qualquer forma de segurança. Com essa mudança, é possível permitir apenas um desses modelos de segurança (mantendo a compatibilidade com versões anteriores).

Os plug-ins OAuth adicionam duas novas sinalizações:

  • allowOAuthOnly: se definido como true, todas as APIs precisam ter um cabeçalho de autorização com um token de acesso do portador.

  • allowAPIKeyOnly: se definida como true, cada API precisa ter um cabeçalho x-api-key (ou um local personalizado) com uma chave de API.

Você define essas sinalizações no arquivo de configuração do Edge Microgateway da seguinte maneira:

oauth:
    allowNoAuthorization: false
    allowInvalidAuthorization: false
    keep-authorization-header: false
    allowOAuthOnly: false
    allowAPIKeyOnly: false

9. Melhoria do proxy Edgemicro-auth (PR 40)

Foram feitas melhorias no proxy edgemicro-auth. Antes dessas mudanças, o proxy armazenava as chaves no Edge Secure Store, um cofre criptografado. Agora, o proxy armazena as chaves no mapa de chave-valor (KVM) criptografado do Edge.

10. Reescrever o URL de destino padrão em um plug-in (PR 74)

Também é possível substituir a porta de endpoint de destino e escolher entre HTTP e HTTPS. Modifique essas variáveis no código do plug-in: req.targetPort e req.targetSecure. Para escolher HTTPS, defina req.targetSecure como true. Para HTTP, defina como false. Se você definir req.targetSecure como "true", consulte esta conversa para mais informações.

11. Suporte inicial para autenticação de token OAuth (PR 125)

É possível configurar o Edge Microgateway para usar um token OAuth na autenticação, em vez de nome de usuário/senha. Para usar um token OAuth, use o parâmetro a seguir no comando edgemicro configure:

-t, --token <token>

Exemplo:

edgemicro configure -o docs -e test -t <your token>

Bugs corrigidos v2.4.3

  • Correção de um problema em que uma organização paga precisava executar corretamente o proxy Edgemicro-auth. Agora você também pode usar o Edge Microgateway com organizações de teste. (RP 5)
  • Foi corrigido um problema em que o stream não terminava de processar dados, mas os gerenciadores finais estavam sendo executados de qualquer maneira. Isso fez com que uma resposta parcial fosse enviada. (PR 71, na sigla em inglês)
  • Correção de um problema em que um diretório de configuração personalizado para instalações de nuvem privada não era reconhecido. (PR 110)
  • Correção de um problema com SSL bidirecional entre o cliente e o Edge Microgateway. (PR 70)
  • Correção de um problema em que uma barra final era exigida no caminho base do proxy para que a verificação da chave de API funcionasse corretamente. Agora não é necessário adicionar uma barra no final do caminho de base. (PR 48)

Versão 2.3.5

Novos recursos e melhorias v.2.3.5

Filtragem de proxy

É possível filtrar quais proxies com reconhecimento de microgateway uma instância do Edge Microgateway processará. Quando o Edge Microgateway é iniciado, ele faz o download de todos os proxies com reconhecimento de microgateway na organização a que está associado. Use a configuração a seguir para limitar quais proxies o microgateway processará. Por exemplo, essa configuração limita os proxies que o microgateway processará em três: edgemicro_proxy-1, edgemicro_proxy-2 e edgemicro_proxy-3:

proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

Mascaramento de dados do Google Analytics

Uma nova configuração permite evitar que as informações do caminho da solicitação apareçam na análise do Edge. Adicione o seguinte à configuração do microgateway para mascarar o URI e/ou o caminho da solicitação. O URI consiste nas partes do nome do host e do caminho da solicitação.

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

Versão 2.3.3

Novos recursos e melhorias v.2.3.3

Confira a seguir os novos recursos e melhorias desta versão.

Desativar a pesquisa de mudança automática

É possível desativar a pesquisa de mudança automática definindo este atributo na configuração do microgateway:

disabled_config_poll_interval: true

Por padrão, a pesquisa periódica identifica todas as alterações feitas no Edge (alterações de produtos, proxies com reconhecimento de microgateway etc.), bem como as alterações feitas no arquivo de configuração local. O intervalo de pesquisa padrão é de 600 segundos (cinco minutos).

Como reescrever URLs de destino em plug-ins

É possível substituir o URL de destino padrão dinamicamente em um plug-in. Para isso, modifique estas variáveis no código do plug-in: req.targetHostname e req.targetPath.

Nova assinatura da função do plug-in

Foi adicionada uma nova assinatura de função de plug-in que fornece a resposta de destino como um argumento. Essa adição facilita o acesso dos plug-ins à resposta de destino.

function(sourceRequest, sourceResponse, targetResponse, data, cb)

Saída de geração de registros padrão simplificada

Por padrão, o serviço de geração de registros agora omite o JSON de proxies, produtos e JWT transferidos por download. É possível alterar para o padrão para gerar esses objetos definindo DEBUG=* ao iniciar o Edge Microgateway. Exemplo:

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

Caminho de configuração personalizado adicionado à CLI

Por padrão, o arquivo de configuração do microgateway está em ./config/config.yaml. Nos comandos init, configure e start, agora você pode especificar um caminho de configuração personalizado na linha de comando. Por exemplo:

edgemicro start -o docs -e test -k abc123 -s xyz456 -c /home/microgateway/config

Bugs corrigidos v2.3.3

  • Foi corrigido um vazamento de memória que ocorria durante solicitações/respostas grandes.
  • A ordem de execução do plug-in foi corrigida. Agora, ele se comporta conforme explicado na documentação.
  • O plug-in generate-request não trava mais para solicitações GET.
  • Correção de um problema no plug-in acumular-response, em que a falta de corpo da resposta causava erros.

Versão 2.3.1

Nota de instalação

Algumas versões anteriores do Edge Microgateway permitem instalar o software fazendo o download de um arquivo ZIP. Esses arquivos ZIP não são mais compatíveis. Para instalar o Edge Microgateway, é preciso usar:

npm install -g edgemicro

Consulte o tópico de instalação para mais detalhes.

Novos recursos e melhorias v.2.3.1

Confira a seguir os novos recursos e melhorias desta versão.

Filtrar proxies

Uma nova configuração permite filtrar quais proxies o Edge Microgateway carregará na inicialização. Antes, o microgateway carregava todos os proxies com reconhecimento de microgateways (proxies chamados Edgemicro_*) da organização/ambiente do Edge especificados no comando de configuração do Edgemicro. Esse novo recurso permite filtrar essa lista de proxies para que o Edge Microgateway carregue apenas aqueles que você especificar. Basta adicionar o elemento de proxies ao arquivo de configuração do microgateway da seguinte forma:

edge micro:
proxies:
    - edgemicro_[name]
    - edgemicro_[name]
    ...

Por exemplo, digamos que você tenha 50 proxies edgemicro_* na sua organização/ambiente do Edge, incluindo os chamados edgemicro_foo e edgemicro_bar. Você pode instruir o microgateway para usar apenas estes dois proxies:

edge micro:
proxies:
    - edgemicro_foo
    - edgemicro_bar

Na inicialização, o microgateway só poderá chamar os proxies especificados. Qualquer tentativa de chamar outros proxies compatíveis com microgateways transferidos por download da organização/ambiente do Edge vai resultar em erro.

Definir cabeçalhos de solicitação de destino em plug-ins

Há dois padrões básicos a serem considerados se você quiser adicionar ou modificar cabeçalhos de solicitação de destino: um em que a solicitação recebida contém dados (como em uma solicitação POST) e outro em que eles não contêm (como em uma solicitação GET simples).

Considere um caso em que a solicitação recebida contém dados e você quer definir cabeçalhos na solicitação de destino. Nas versões anteriores do Edge Microgateway, não era possível definir cabeçalhos de destino de maneira confiável nesse caso.

A chave para esse padrão é, primeiro, acumular todos os dados recebidos do cliente. Em seguida, na função onend_request(), use a nova função request.setOverrideHeader(name, value) para personalizar os cabeçalhos.

Veja um exemplo de código de plug-in que mostra como fazer isso. Os cabeçalhos definidos em onend_request são enviados ao destino:

module.exports.init = function(config, logger, stats) {


  function accumulate(req, data) {
    if (!req._chunks) req._chunks = [];
    req._chunks.push(data);
  }

  return {

    ondata_request: function(req, res, data, next) {
      if (data && data.length > 0) accumulate(req, data);
      next(null, null);
    },

    onend_request: function(req, res, data, next) {
      if (data && data.length > 0) accumulate(req, data);
      var content = Buffer.concat(req._chunks);
      delete req._chunks;
      req.setOverrideHeader('foo', 'bar');
      req.setOverrideHeader('content-length', content.length);
      next(null, content);
    },


    onerror_request: function(req, res, data, next) {
      next(null, null);
    }

  };

}

Se a solicitação não incluir dados, defina cabeçalhos de destino no gerenciador onrequest(). Esse padrão não é novo. Ele foi documentado anteriormente e foi usado nos plug-ins de amostra fornecidos com o Edge Microgateway.

onrequest: function(req, res, next) {
      debug('plugin onrequest');
      req.headers['x-foo-request-id'] = "bar";
      req.headers['x-foo-request-start'] = Date.now();
      next();
    }

Recurso de atualização com inatividade zero

Depois de fazer uma alteração na configuração do Edge Microgateway, é possível carregar a configuração sem descartar nenhuma mensagem. Com essa alteração, o Edge Microgateway sempre é iniciado no modo de cluster, e a opção --cluster foi removida do comando edgemicro start.

Além disso, três novos comandos da CLI foram adicionados. Execute estes comandos no mesmo diretório em que o comando "edgemicro start" foi executado:

  • edgemicro status: verifica se o Edge Microgateway está em execução ou não.
  • edgemicro stop: interrompe o cluster do Edge Microgateway.
  • edgemicro reload: recarrega a configuração do Edge Microgateway sem inatividade.

Recarregamento automático de configuração sem inatividade

O Edge Microgateway carrega uma nova configuração periodicamente e executa uma atualização se algo for alterado. A pesquisa seleciona todas as alterações feitas no Edge (mudanças em produtos, proxies compatíveis com microgateways etc.), bem como alterações feitas no arquivo de configuração local. O intervalo de pesquisa padrão é de 600 segundos (cinco minutos). É possível alterar o padrão no arquivo de configuração do microgateway da seguinte maneira:

edgemicro:
    config_change_poll_interval: [seconds]

Inclusão de informações sobre a versão na CLI

Uma sinalização --version foi adicionada à CLI. Para acessar a versão atual do Edge Microgateway, use:

edgemicro --version

Novas opções de SSL do servidor Edge Microgateway

Agora, o Edge Microgateway oferece suporte às seguintes opções de SSL do servidor, além de key e cert:

Opção Descrição
pfx Caminho para um arquivo pfx que contém a chave privada, o certificado e os certificados de CA do cliente no formato PFX.
passphrase String com a senha longa da chave privada ou PFX.
ca Caminho para um arquivo que contém uma lista de certificados confiáveis no formato PEM.
ciphers Uma string que descreve as criptografias a serem usadas, separadas por um ":".
rejectUnauthorized Se verdadeiro, o certificado do servidor será verificado em relação à lista de CAs fornecidas. Se a verificação falhar, será retornado um erro.
secureProtocol O método SSL a ser usado. Por exemplo, SSLv3_method para forçar o SSL para a versão 3.
servername O nome do servidor para a extensão TLS de SNI (Indicação de Nome do Servidor).

Enviar arquivos de registros para stdout

É possível enviar dados de registro para a saída padrão com uma nova configuração:

edgemicro:
  logging:
    to_console: true  

Consulte Gerenciar arquivos de registros.

Versão 2.1.2

Confira a seguir os novos recursos e melhorias desta versão.

Permitir o endpoint de API personalizado para configuração

Há novos endpoints configuráveis para o proxy de autorização, compatíveis com o uso de um serviço de autenticação personalizado. Esses endpoints são:

  • edgeconfig:verify_api_key_url
  • edgeconfig:products

Para mais detalhes, consulte Como usar um serviço de autenticação personalizado.

Versão 2.1.1

Confira a seguir os novos recursos e melhorias desta versão.

Implantar um proxy de autenticação compatível com várias plataformas

Fizemos uma melhoria para que o comando usado para implantar o proxy de autorização do Edge Microgateway no Edge seja compatível com sistemas Windows.

Versão 2.1.0

Novos recursos e melhorias v.21.0

Confira a seguir os novos recursos e melhorias:

Especificar as opções de SSL/TLS do cliente

É possível especificar opções de cliente para conexões SSL/TSL para destinos usando um novo conjunto de opções de configuração. Consulte Como usar opções de SSL/TSL do cliente.

Versão 2.0.11

Nota de instalação v2.0.11

Algumas versões anteriores do Edge Microgateway permitem instalar o software fazendo o download de um arquivo ZIP. Esses arquivos ZIP não são mais compatíveis. Para instalar o Edge Microgateway, é preciso usar:

npm install -g edgemicro

Consulte o tópico de instalação para mais detalhes.

Novos recursos e melhorias v.2.0.11

Confira a seguir os novos recursos e melhorias:

Especificar uma porta na inicialização

Com o comando "start", é possível especificar um número de porta para substituir a porta especificada no arquivo de configuração. Também é possível especificar um número de porta usando a variável de ambiente PORT. Consulte o comando "start" para ver mais detalhes.

Também é possível preservar cabeçalhos de autenticação

A nova configuração keepAuthHeader permite preservar o cabeçalho de autorização enviado na solicitação. Se definido como verdadeiro, o cabeçalho Auth é transmitido para o destino. Veja Atributos OAuth.

Capacidade de usar um serviço de autorização personalizado

Se você quiser usar seu próprio serviço personalizado para lidar com a autenticação, altere o valor de authUri no arquivo de configuração do Edge Microgateway para que ele aponte para seu serviço. Para detalhes, consulte Como usar um serviço de autenticação personalizado.

Versão 2.0.4

O Edge Microgateway v.2.0.4 foi lançado em 25 de maio de 2016.

Novos recursos e melhorias v2.0.4

Confira a seguir os novos recursos e melhorias nesta versão.

Suporte para caminhos de recursos em produtos

O Edge Microgateway agora oferece suporte a caminhos de recursos em produtos. Os caminhos de recursos permitem restringir o acesso a APIs com base no sufixo do caminho do proxy. Para saber mais sobre como criar produtos e configurar caminhos de recursos, consulte Criar produtos de API.

Suporte à instalação global do npm

Agora é possível instalar o Edge Microgateway usando a opção npm -g (global). Para detalhes sobre essa opção, consulte a documentação do npm.

Versão 2.0.0

O Edge Microgateway v2.0.0 foi lançado em 18 de abril de 2016.

Novos recursos e melhorias v.2.0.0

Confira a seguir os novos recursos e melhorias nesta versão.

Servidor de processo único

O Edge Microgateway agora é um servidor de processo único. Ele não usa mais um modelo de dois processos em que um (anteriormente conhecido como "agente") inicia o Edge Microgateway, o segundo processo. A nova arquitetura facilita a automação e a conteinerização.

Arquivos de configuração com namespace

Os arquivos de configuração agora recebem namespaces usando organização e ambiente para que várias instâncias do Microgateway possam ser executadas no mesmo host. Encontre os arquivos de configuração em ~/.edgemicro depois de executar o comando de configuração do Edge Microgateway.

Novas variáveis de ambiente

Agora há quatro variáveis de ambiente: EDGEMICRO_ORG, EDGEMICRO_ENV, EDGEMICRO_KEY e EDGEMICRO_SECRET. Se você definir essas variáveis no seu sistema, não precisará especificar os valores delas ao usar a interface de linha de comando (CLI) para configurar e iniciar o Edge Microgateway.

Configuração em cache

O Edge Microgateway usa um arquivo de configuração em cache se for reiniciado sem conexão com o Apigee Edge.

Modo de cluster

Agora há opções para iniciar o Edge Microgateway no modo de cluster. O modo de cluster permite que você aproveite os sistemas com vários núcleos. O microgateway usa o módulo de cluster do Node.js para esse recurso. Para mais detalhes, consulte a documentação do Node.js.

Bugs corrigidos v2.0.0

O ciclo de vida do evento de plug-in agora lida corretamente com o código assíncrono que contém código com um novo callback.

Versão 1.1.2

O Edge Microgateway v. 1.1.2 foi lançado em 14 de março de 2016.

Novos recursos e melhorias v.1.1.2

Confira a seguir os novos recursos e melhorias nesta versão.

Melhoria de desempenho

O Edge Microgateway agora usa o agente HTTP Node.js corretamente para melhorar o pool de conexões. Essa melhoria melhora o desempenho e a estabilidade geral em situações de alta carga.

Suporte ao depurador remoto

É possível configurar o Edge Microgateway para ser executado com um depurador remoto, como o node-inspector.

Novo local do arquivo de configuração

Quando você configura o Edge Microgateway, o arquivo agent/config/default.yaml agora é copiado para ~./edgemicro/config.yaml.

Rotação do arquivo de registros

Um novo atributo de configuração permite especificar um intervalo de rotação para os registros do Edge Microgateway.

Bugs corrigidos v1.1.2

Os seguintes bugs foram corrigidos na v. 1.1.2.

Descrição
A frase de destaque Java para o proxy interno Edgemicro usado com o Edge no local agora usa o servidor MGMT correto.
Remova as dependências de typescript do agente.
Correção do bug da CLI ao usar a opção de implantação enxuta.
Correção da referência de dependência da lógica do certificado.