Notas de lançamento do Edge Microgateway

Você está visualizando a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Versão 3.3.x

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

3.3.5

Na sexta-feira, 20 de dezembro de 2024, lançamos as seguintes correções e melhorias na microgateway Edge.

Versões de componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.3.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
3.3.5 3.3.5 3.3.5 3.3.5 3.2.2

Correções de bugs e melhorias:

ID do problema Tipo Descrição
383024578 Recurso

Adicionamos suporte à versão 22 do Node.js e removemos o suporte à versão 16. Se você estiver usando o Node.js v18, a Microgateway do Edge vai imprimir a seguinte mensagem de erro na inicialização:

current nodejs version is  18.x.x Note, v18.x.x will be out of support soon, see https://docs.apigee.com/release/notes/edge-microgateway-release-notes-0

Se você estiver executando uma versão anterior do Node.js, verá esta mensagem de erro:

You are using a version of NodeJS that is not supported

Correção de problemas de segurança

  • CVE-2024-21538
  • CVE-2024-45590
  • CVE-2019-3844
  • CVE-2019-12290
  • CVE-2020-1751
  • CVE-2018-12886
  • CVE-2023-50387
  • CVE-2019-3843
  • CVE-2022-4415
  • CVE-2021-3997

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

3.3.4

Em 18 de setembro de 2024, lançamos as seguintes correções e melhorias na microgateway do Edge.

Versões de componentes:

A tabela a seguir lista os números de versão dos projetos de componentes individuais associados ao Edge Microgateway 3.3.4. 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
3.3.4 3.3.4 3.3.4 3.3.4 3.2.2

Correções de bugs e melhorias:

ID do problema Tipo Descrição
675987751 Bug

Correção de um problema em que o Edge Microgateway não registrava endereços IP de clientes.

Correção de problemas de segurança

  • CVE-2021-23337
  • CVE-2024-4068
  • CVE-2020-28469
  • CVE-2020-28503

3.3.3

Em 25 de abril de 2024, lançamos as seguintes correções e melhorias na microgateway do Edge.

Versões de 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
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 de cliente Eureka foi removido do microgateway do Edge. A remoção desse recurso não afeta a funcionalidade principal do Edge Microgateway nem a regravação de URLs de destino. Para mais detalhes, consulte Reescrever URLs de destino em plug-ins.

283947053 Removido

O suporte a forever-monitor foi removido do Edge Microgateway. Você pode substituir forever-monitor por PM2. Para mais detalhes, consulte esta postagem da comunidade da Apigee: Edgemicro + PM2: como iniciar o edgemicro como um serviço.

Correção de problemas de segurança

  • 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 na microgateway do Edge.

Versões de 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
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 Recurso

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

283947053 Bug

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

274443329 Bug

Corrigimos 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, vamos criar a imagem Docker com a versão 18.17-buster-slim.

Correção de problemas de segurança

Nenhum.

3.3.1

Em 7 de junho de 2022, lançamos as seguintes correções e melhorias na microgateway do Edge.

Versões de 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
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 Recurso

Agora há suporte para a versão 16 do Node.js.

231972608 Bug

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

233315475 Bug

Um problema foi corrigido em que o plug-in json2xml gerava um erro de análise ao transformar a resposta de JSON para XML e ao ser usado em combinação com o plug-in accumulate-response.

221432797 Mudança

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

215748732 Recurso

O suporte à autenticação de token SAML foi adicionado 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.

Para mais detalhes, consulte a Referência da linha de comando.

218723889 Atualização de documento

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

Correção de problemas de segurança

ID do problema Descrição
CVE-2021-23413 Isso afeta o pacote jszip antes da 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

Em 4 de fevereiro de 2022, lançamos as seguintes correções e melhorias na microgateway do Edge.

Versões de componentes:

A tabela a seguir lista 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
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 gateway da Microgateway de borda 3.3.0 é incompatível com o comando npm audit fix.

A execução de 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, em seguida, edgemicro upgradeauth, vai aparecer este erro:

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

Para corrigir o problema, execute o comando abaixo 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 Recurso

Uma nova flag para o plug-in de cota, 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 para cota.

192534424 Bug

Foi corrigido um problema em que o código de resposta mostrado na análise do Apigee não correspondia ao código de resposta do Edge Microgateway.

198986036 Melhoria O Microgateway de borda agora busca a chave pública de um provedor de identidade (IDP) em cada intervalo de pesquisa e também atualiza a chave caso ela mude. Anteriormente, o plug-in extauth não conseguia atualizar a chave pública sem recarregar o Edge Microgateway se a chave pública de um IDP fosse alterada.
168713541 Bug

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

171538483 Bug

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

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 revokekeys retornava um erro ao revogar uma chave usando um par de chaves e segredos existente.
205524197 Bug A documentação foi atualizada para incluir a lista completa de níveis de geração de registros. Consulte Atributos do edgemicro e Como definir o nível de registro.

Versão 3.2.x

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

3.2.3

Em 17 de setembro de 2021, lançamos as seguintes correções e melhorias na microgateway do Edge.

Versões de 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
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 Recurso

O atributo de configuração disableStrictLogFile permite que você relaxe as permissões rígidas de arquivos no arquivo de registro do aplicativo api-log.log. Para saber mais, consulte Como relaxar as permissões de arquivos de registro.

192799989 Recurso

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 encerrada prematuramente. Para saber mais, consulte Atributos do edgemicro.

148062415 Bug Um problema foi corrigido 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 são removidos e a reinicialização do mesmo contêiner funciona conforme o esperado.
190715670 Bug Foi corrigido um problema em que algumas solicitações ficavam presas durante a atividade de recarga interna da microgateway. Esse problema era intermitente e ocorria em situações de tráfego intenso. O problema foi observado quando os recursos tokenCache e cacheKey do plug-in OAuth foram usados.
183910111 Bug Foi corrigido um problema em que um URL de caminho de recurso com um caractere de barra incorreto 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.

Correção de problemas de segurança

ID do problema Descrição
CVE-2020-28503 Os copy-props do pacote anteriores à versão 2.0.5 são vulneráveis à poluição de protótipo pela funcionalidade principal.
CVE-2021-23343 Todas as versões do package-path-parse são vulneráveis a negação de serviço de expressão regular (ReDoS) por splitDeviceRe, splitTailRe e splitPathRe. A ReDoS apresenta complexidade de tempo polinomial no pior cenário.

3.2.2

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

Versões de 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
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 Mudança

O valor expires_in foi alterado 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 obedecer ao RFC 6749, a estrutura de autorização OAuth 2.0, o valor esperado para o parâmetro de configuração expires_in foi alterado de string para inteiro. Para mais detalhes, consulte a Referência de operação e configuração.

188492065 Mudança 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 Software e versões compatíveis: Edge Microgateway.

183990345 Recurso Configurar a saída de registro para o contêiner do Docker

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

Para impedir que as 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 saber como usar essa nova variável, consulte Como usar o Docker para Edge Microgateway.

183057665 Recurso Tornar os caminhos de arquivos 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 Recurso A imagem do Docker para o Edge Microgateway foi atualizada para usar a versão 12.22 do NodeJS. Consulte Como usar o Docker para o Edge Microgateway.

Correção de problemas de segurança

ID do problema Descrição
CVE-2021-28860 No mixme do Node.js, antes da v0.5.1, um invasor pode adicionar ou alterar propriedades de um objeto usando "__proto__" nas funções mutate() e merge(). O atributo contaminado será atribuído diretamente a todos os objetos no programa. Isso coloca a disponibilidade do programa em risco, causando uma possível negação de serviço (DoS).
CVE-2021-30246 No pacote jsrsasign até a versão 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á ataque prático conhecido.
CVE-2021-23358 O sublinhado do pacote da versão 1.13.0-0 e anteriores à 1.13.0-2, da versão 1.3.2 e anteriores à 1.12.1 são vulneráveis à injeção de código arbitrário pela função de modelo, principalmente quando uma propriedade variável é transmitida como um argumento, porque ela não é limpa.
CVE-2021-29469 O Node-redis é um cliente Redis do Node.js. Antes da versão 3.1.1, quando um cliente estava no modo de monitoramento, a regex usada para detectar mensagens de monitoramento podia causar backtracking 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 do Docker foi atualizada para usar a versão 12.22 do Node.js.

3.2.1

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

Versões de 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
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 um valor nulo faziam com que os aplicativos falhassem.

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

Observação:para aplicar essa correção, é necessário fazer upgrade do proxy edgemicro-auth.

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

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

179674670 Recurso Foi adicionado um novo recurso que permite filtrar a lista de produtos de API colocados em um JWT com base nos códigos de status do produto.

Os produtos de API têm três códigos de status: "Pendente", "Aprovado" e "Revogado". Uma nova propriedade chamada allowProductStatus foi adicionada à política Set JWT Variables no proxy edgemicro-auth. Para usar essa propriedade para filtrar os produtos da 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 de códigos de status separados por vírgulas para filtrar. Por exemplo, para filtrar o 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 apenas 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, é necessário fazer upgrade do proxy edgemicro-auth.

178423436 Bug Os valores de chave e secretos transmitidos na CLI ou pelas variáveis de ambiente ficam visíveis nos argumentos de linha de comando do Process Explorer.

Foi relatado um problema em que a chave e os valores secretos do microgateway do Edge que foram transmitidos de argumentos de linha de comando ou definidos por variáveis de ambiente foram exibidos nos argumentos de processos filhos/de trabalhador de nó após a inicialização do microgateway.

Para corrigir esse problema no cenário de variável de ambiente, os valores não são mais mostrados nos argumentos de linha de comando do Process Explorer.

Se os valores de chave e secret forem transmitidos na linha de comando durante a inicialização do microgateway, as configurações substituem os valores de variáveis de ambiente, se definidos. Nesse caso, os valores ainda estão visíveis nos argumentos de linha de comando do Process Explorer.

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

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

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

179366445 Bug Foi resolvido um problema em que o payload estava sendo descartado para todas as solicitações GET para 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 de solicitação transfer-encoding: chunked é adicionado a todas as solicitações GET, e um payload GET, se presente, é enviado para o destino. Se false (padrão), o payload será removido silenciosamente antes que a solicitação seja enviada ao destino.

Exemplo:

edgemicro:
 enable_GET_req_body: true

De acordo com a RFC 7231, seção 4.3.1: GET, um payload de solicitação GET não tem semântica definida, então ele pode ser enviado ao destino.

3.2.0

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

Versões de 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
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 Ativamos 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 fica disponível para plug-ins subsequentes.
168836123, 172295489, 176462355, 176462872 Recurso Adicionado suporte a Node.js 14.
172376835 Bug Use a unidade de tempo correta para o endpoint /token no proxy edgemicro-auth.

Um problema foi corrigido em que o endpoint /token no proxy edgemicro-auth retornou expires_in em milissegundos. No entanto, de acordo com a especificação OAuth, ele precisa ser consistente com a unidade de tempo para refresh_token_expires_in, que é segundos.

A correção não muda a duração do tempo de expiração, mas apenas a unidade de tempo. Ela 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 dependem do valor expires_in, em milissegundos, para atualizar tokens antes que eles expirem, a aplicação dessa correção sem modificar os clientes causaria atualizações muito mais frequentes e desnecessárias. Esses clientes precisam 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, não será necessário fazer mudanças.

173064680 Bug Um problema foi corrigido em que a microgateway encerrava a solicitação de destino antes que todos os blocos de dados fossem processados.

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

174640712 Bug Adicione o tratamento de dados adequado 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 na v.3.1.x

3.1.8

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

Versões de 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
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 tratamento de substituição de variáveis de ambiente analisou todos os valores como strings, o que resultou em erros de análise para 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. Consulte Como definir atributos de configuração com valores de variáveis de ambiente para mais detalhes.

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 funcionava para alguns atributos de configuração. Consulte Como definir atributos de configuração com valores de variáveis de ambiente para informações sobre limitações.

168732942 Bug Foi corrigido um problema em que os escopos do OAuth não estavam restringindo o acesso do 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 transmitiu um parâmetro de escopo ou 2) um escopo inválido foi transmitido no payload da solicitação para o fluxo /token. Foi feita uma correção 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 de produtos de API não estão disponíveis para plug-ins personalizados.

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

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

A chave e o segredo do microgateway do Edge estavam sendo salvos no arquivo yaml de configuração do cache em cada recarga/início. Na versão 3.1.8, a chave e o secret não são mais salvos no arquivo de configuração do cache. Se a chave e o secret tiverem sido gravados anteriormente no arquivo de configuração do cache, eles serão removidos.

170708621 Recurso Não é possível desativar o plug-in de análise.

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 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 na microgateway do Edge.

Versões de 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
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 no Google Analytics com respostas de status 403 causadas por caminhos de recursos de produto 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 de clientes do Redis.

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

A execução do Edge Microgateway com a versão 12.13.x ou mais recente do Node.js 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 recarga manual do Edge Microgateway com redisBasedConfigCache:true não estava funcionando.

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

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

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

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

O microgateway agora processa a seção de negação corretamente e respeita a ordem das seções "allow" e "deny". Uma nova propriedade noRuleMatchAction 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 no GitHub.

3.1.6

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

Versões de 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
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 Recurso Opções personalizadas de local do arquivo de chave e certificado para o comando "rotatekey".

Para mais detalhes sobre essas novas opções de comando, consulte Girar chaves.

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

Para mais detalhes sobre essas novas opções de comando, consulte Girar chaves.

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

Consulte o README das novas métricas de plug-ins no GitHub para 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, o caminho base do proxy era correspondido incorretamente quando o caminho base não terminava com /.

Confira a seguir mais detalhes sobre o comportamento anterior (que foi corrigido na versão 3.1.6):

Suponha que um proxy esteja configurado com o caminho 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 é correspondido corretamente.
Caminho da solicitação Caminho resolvido Resultado
/hello/v1json 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 precisa gerar um 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 transmitido para a inicialização 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 suporte do Redis

Use a configuração a seguir para especificar um repositório de origem do Redis para cotas. Para mais detalhes, consulte Como usar um armazenamento de suporte do Redis para cota.

3.1.5

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

Versões de 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
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 Recurso Configuração para excluir o processamento de plug-ins

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

156986819, 158529319 Bug Correção de problemas com o plug-in json2xml

Correção de problemas em que o plug-in gerava cabeçalhos "Content-Type" duplicados e em que os cabeçalhos não eram enviados ao destino, como esperado, em alguns casos.

156560067, 159688634 Recurso

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

Um recurso foi adicionado que permite especificar variáveis de ambiente usando tags no arquivo de configuração. As tags de 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, e não nos arquivos de configuração ou de cache originais. Para mais detalhes, consulte Como definir atributos de configuração com valores de variáveis de ambiente.

155077210 Bug Um problema de formatação de registro foi corrigido.

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

153673257 Bug

(Somente Edge para nuvem privada) Os produtos compatíveis com a microgateway não são extraídos

Correção de um problema em que os produtos compatíveis com a microgateway não eram buscados. Esse problema existia apenas nas instalações do Edge para nuvem privada.

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

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

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

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

155499600 Bug Correção de problemas com a rotação de chaves e o upgrade do KVM

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 na microgateway do Edge.

Correção de bugs:

Um problema de dependência na versão 3.1.3 foi corrigido. A versão 3.1.3 foi marcada como descontinuada no repositório do npm. 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 microgateway do Edge.

Versões de 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
3.1.3 3.1.3 3.1.3 3.0.14 3.0.9

Correções de bugs e melhorias:

  • 153509313: correção de 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 v3.1.0, v3.1.1 e 3.1.2.
  • 153509313: correção de um problema em que o mesmo ID de mensagem para duas transações diferentes era impresso na saída de registro.
  • 151673570: foi corrigido um problema em que o Edge Microgateway não era atualizado para usar novas APIs KVM da Apigee. O Edge Microgateway agora usa os novos comandos para adicionar e atualizar os valores do KVM.
  • 152822846: em versões anteriores, o Edge Microgateway foi atualizado para que o processamento do mapeamento de caminho de recurso correspondesse ao do Apigee Edge. Nesta versão, corrigimos 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 mudanças para ativar os identificadores de escopo de organização e ambiente para cotas.
  • 152005003: foram feitas mudanças para ativar os identificadores de escopo de organização e ambiente para cotas. A combinação de "org + env + appName + productName" é usada como o identificador de cota.

3.1.2

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

Versões de 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
3.1.2 3.1.2 3.1.2 3.0.13 3.0.9

Correções de bugs e melhorias:

  • 151285018: foi feito um aprimoramento de recurso para adicionar suporte a proxy HTTP para tráfego entre o Edge Microgateway e destinos de back-end. Além disso, foram corrigidos problemas de suporte a proxy HTTP entre o Edge Microgateway e o Apigee Edge. 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 fecha a conexão foi alterado de ERROR para INFO.
  • 150746985: correção de 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: a versão do Node.js na imagem do Docker usada para executar o Edge Microgateway em um contêiner do Docker foi atualizada para a 12, porque o Node.js v8 foi descontinuado.
  • 151306049: a documentação foi atualizada 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 na microgateway do Edge.

Versões de 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
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, agora são ignoradas. Somente as variáveis de ambiente são usadas para especificar o proxy.

    Se você quiser especificar a configuração do proxy no arquivo de configuração, também especifique 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

    Você também precisa especificar esta variável de ambiente:

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

    Internamente, o parâmetro define o atributo Server.headersTimeout 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 balanceadores de carga ou proxies percam a conexão por engano.

  • 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 da API, o Edge Microgateway poderá recuperar essa propriedade e aplicar os tempos limite específicos do endpoint de destino. Se esse parâmetro não for aplicado, o Edge Microgateway vai usar o timeout global especificado com edgemicro.request_timeout.

3.1.0

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

Versões de componentes:

A tabela a seguir lista 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
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 flag quotas.failOpen for acionada. Essa flag é acionada se ocorrer um erro de processamento de cota ou se a solicitação "aplicar cota" para o Edge não atualizar os contadores de cota remotos. Nesse caso, a cota será processada com base nas contagens locais apenas até a próxima sincronização de cota remota bem-sucedida. Antes, esse evento só era registrado quando o nível de registro estava 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: correção de um problema em que as transações em andamento ou novas eram afetadas sempre que o microgateway do Edge detectava uma mudança em um proxy de API. Agora, quando uma mudança é feita em um proxy, o Edge Microgateway atualiza o cache e os nós de worker são reiniciados. Com essa mudança, as transações em andamento e as novas chamadas de API enviadas para o microgateway não são afetadas.
  • 146378327: o nível de registro de sourceRequest, targetRequest e targetResponse foi alterado para o nível INFO.
  • 146019878: foi corrigida uma discrepância entre a latência calculada para a "Performance do proxy de API" nos eventos de registro de sourceResponse/targetResponse da API e no Microgateway do Edge. Agora, a latência nos eventos de registro da Microgateway e da Análise Edge está alinhada.
  • Mudanças relacionadas à lógica de correspondência de padrões:
    • 147027862: o plug-in do OAuth foi atualizado para oferecer suporte aos seguintes padrões de correspondência de caminho de recurso, conforme especificado nos produtos da API:
      • /{literal}**
      • /{literal}*
      • Qualquer combinação dos dois padrões acima

      Com essa mudança, o plug-in do 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 '/', '/*' e '/**'.

    • 145644205: atualização da lógica de correspondência de padrões do plug-in de chaves de API para corresponder ao plug-in de OAuth.
  • 143488312: foi corrigido um problema em que espaços iniciais ou finais no parâmetro de ID do cliente faziam com que a criação da lista de produtos JWT ficasse vazia para solicitações de token OAuth e 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 Redis local. 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 as instâncias de microgateway sejam iniciadas e funcionem sem precisar se comunicar com o Apigee Edge. Confira mais detalhes em Como usar o sincronizador.

    No momento, o recurso de sincronização tem suporte para o Redis 5.0.x.

Versão 3.0.x

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

3.0.10

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

Versões de 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
3.0.10 3.0.8 3.0.8 3.0.11 3.0.8

Correções de bugs e melhorias:

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

    Observação: se você usar um padrão de recurso composto, como /*/2/**, é necessário garantir que o proxy edgemicro_auth seja adicionado a um produto de API independente. 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 de 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 quotas individuais, consulte Opções de configuração de 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 a loja de destino da 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 repositório de backup, e o contador de cota será global. Para mais detalhes, consulte Opções de configuração de cota. 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 minutos) para 1.800 segundos (30 minutos).
  • 143551282: para oferecer suporte a organizações ativadas pelo SAML, o comando edgemicro genkeys foi atualizado para incluir um parâmetro ‑‑token. Esse parâmetro permite usar um token OAuth para autenticação em vez de nome de usuário/senha. Para mais detalhes, consulte Como gerar chaves.

3.0.9

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

Versões de 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
3.0.9 3.0.7 3.0.7 3.0.10 3.0.7

Correções de bugs e melhorias:

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

    Para ativar o recurso "fail open" da 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 mudança de configuração foi feita no proxy edgemicro-auth para evitar o excesso de cota. A mudança é definir o tipo de cota como calendar. Para usar essa melhoria, atualize o edgemicro-auth para a versão 3.0.7 ou mais recente.
  • 142520568: foi adicionado um novo recurso para ativar o registro do ID do processador de mensagens nas respostas de cota. Para usar esse recurso, atualize seu proxy edgemicro-auth para a versão 3.0.7 ou mais recente e defina 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 na microgateway do Edge.

Versões de 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
3.0.8 3.0.6 3.0.6 3.0.9 3.0.6

Correções de bugs e melhorias:

  • 140025210: foi adicionado um novo recurso de "falha aberta". 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.

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

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

    1. Defina as seguintes propriedades na stanza oauth no arquivo de configuração do microgateway do Edge:
      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 5 segundos se não puder ser atualizado devido a um problema de conectividade. Após 5 segundos, um erro de autenticação será retornado.

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

3.0.7

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

Versões de 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
3.0.7 3.0.5 3.0.5 3.0.8 3.0.5

Correções de bugs e melhorias:

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

    Esse recurso fica desativado por padrão. Para ativar esse recurso, adicione a propriedade oauth.useUpstreamResponse: true à 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, quota.quotaUri, foi adicionada. Defina essa propriedade de configuração se quiser gerenciar cotas pelo proxy edgemicro-auth implantado na sua organização. Se essa propriedade não for definida, o endpoint de cota vai usar o endpoint interno do Edge Microgateway. 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 saber mais, consulte Como fazer upgrade do proxy edgemicro-auth.

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

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

    edgemicro:
        keep_alive_timeout
  • 139526406: correção de um bug em que uma contagem de cota incorreta ocorria se um app de desenvolvedor tivesse vários produtos. A cota agora é 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 na microgateway do Edge.

  • 138633700: foi adicionada uma 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 essa propriedade de configuração se quiser gerenciar cotas pelo proxy edgemicro-auth implantado na sua organização. Se essa propriedade não estiver definida, o endpoint de cota será definido como o endpoint interno da microgateway do Edge. Exemplo:
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

    Para usar esse recurso, primeiro implante 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: foi adicionada uma nova propriedade de configuração, stack_trace. Essa propriedade permite controlar se os rastros de pilha vão aparecer ou não nos arquivos de registro. Exemplo:
    stack_trace: false

    Se stack_trace for definido como true, o stack trace será impresso nos registros. Se ele for definido como false, o rastro de pilha não será impresso nos registros.

3.0.5

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

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 log correto.
Melhorias gerais na mensagem de registro
  • 139064652: foi adicionado o recurso para adicionar níveis de registro trace e debug para 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 todas as instruções de registro do console. As instruções de registro da consola agora incluem estes atributos:
    • Carimbo de data/hora
    • Nome do componente
    • ID do processo
    • Mensagem de registro do console
Melhorias na chave JWT e na mensagem de registro secreta
  • 138413755: melhoria das mensagens de registro relacionadas a chaves e segredos JWT para estes comandos da CLI: cert, verify, upgradekvm, token, genkeys, revokekeys, rotatekey e configure.
Melhorias na mensagem de erro de tempo limite e conexão recusada
  • 138413577: adição e melhoria do tratamento de erros para timeouts do serviço de back-end.
  • 138413303: adição e melhoria do processamento de erros para resposta e tempo limite de soquetes.
  • 138414116: adição e melhoria do processamento de erros de "conexão recusada".

3.0.4

Na quinta-feira, 1º de agosto, lançamos as seguintes correções e melhorias na microgateway do Edge.

  • 134445926: melhorias na autenticação interna do Edge Microgateway.
  • 137582169: correção de um problema em que processos indesejados eram iniciados. Os processos extras fizeram com que os plug-ins fossem recarregados e usaram memória excessiva. O microgateway de borda agora mantém o número de processos dentro do limite esperado.
  • 137768774: melhorias na mensagem de registro:
    • Registros de transação (solicitação) limpos.
    • Foram adicionadas 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.
    • Os registros do console foram atualizados para usar uma função de geração de registros centralizada.
  • 138321133, 138320563: mudança interna fundamental no buffer de cota para permitir melhorias futuras na cota.

3.0.3

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

  • Melhorias no registro: os registros de ambiente de execução atuais usam uma nova função eventLog() que captura e registra dados de execução em um formato consistente. As informações de 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 de solicitação do cabeçalho da solicitação.
    • ID do processo: se você estiver executando um cluster de processos do Node.js, esse será o ID do processo em que o registro ocorreu.
    • Nome da organização da Apigee.
    • Nome do ambiente na organização.
    • Nome do proxy da API.
    • Endereço IP do cliente.
    • ClientId.
    • ID de correlação (não definido no momento).
    • Nome do componente do Edge Microgateway.
    • Mensagem personalizada: alguns objetos podem imprimir informações adicionais 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 nesta propriedade.
    • Tempo gasto.
    • Sistema operacional marcador de fim de linha.

    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)
  • Integrações de teste funcional 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 e alterações foram feitas para atender aos padrões de qualidade solicitados pelos usuários. Resolvemos erros e avisos de qualidade de código derivados do JSHint. Como resultado, alguns erros reais no código foram identificados e corrigidos. 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 do cliente.

3.0.1

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

  • 134834551: mudança nas versões do Node.js com suporte para a microgateway do Edge
    (versões do Node.js com suporte: 8 e 12; as versões 7, 9 e 11 são experimentais)
  • 134751883: o Edge Microgateway falha ao recarregar sob carga.
  • 134518428: o endpoint de produtos do microgateway do Edge retorna 5XX se o padrão de filtro estiver incorreto.
  • 135113408: os workers precisam ser reiniciados se forem encerrados inesperadamente.
  • 134945852: o tokenCacheSize não é usado no plug-in do OAuth.
  • 134947757: definir cacheTTL no plug-in do OAuth.
  • 135445171: o cálculo de gracePeriod no OAuth não está correto.
  • Use o módulo memorizado 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 2.5.38, 07/06/2019)

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

(Adicionado na versão 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 APIs de gerenciamento. Consulte também Gerenciar certificados.

(Adicionado na versão 2.5.35) Adição de suporte para depurar o Edge Microgateway usando edgemicroctl.

Use a flag mgdebug com edgemicroctl. Consulte também Tarefas de integração do Kubernetes.

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

(Adicionado na versão 2.5.31) Nova API edgemicro-auth/token

Uma nova API edgemicro-auth/token foi adicionada para permitir que você transmita o cliente/secret como um cabeçalho de autorização básica codificado em base64 e o grant_type como um parâmetro de formulário. Consulte Como receber tokens do portador diretamente.

(Corrigido na versão 2.5.31) A configuração privada não respeita a flag do token

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

Docker: suporte para o uso de certificados autoassinados

(Adicionado na versão 2.5.29) Se você estiver usando uma autoridade certificadora (CA) que não é confiável por padrão no Node.js, use o parâmetro NODE_EXTRA_CA_CERTS ao executar um contêiner do Docker com o microgateway do Edge. Para mais detalhes, consulte Como usar uma AC que não é confiável pelo Node.js.

Docker: suporte a TLS

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

Os exemplos a seguir explicam em detalhes como configurar essas configurações de TLS:

Nestes exemplos, você vai aprender a usar o ponto de montagem do contêiner /opt/apigee/.edgemicro para carregar os certificados, que são referenciados no arquivo de configuração do Edge Microgateway.

Docker: suporte a proxy de solicitação

(Adicionado na versão 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 em execução por trás de um firewall:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

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

Docker: instruções atualizadas do plug-in

(Adicionado na versão 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, que usa um ponto de montagem do Docker, é nova. A outra opção já existia antes, não mudou muito, mas o Dockerfile foi atualizado. Para mais detalhes, consulte estes links:

Novo suporte a tokens OAuth para o comando de upgrade do KVM

(Adicionado na versão 2.5.27) É possível usar um token OAuth com o comando upgradekvm. Para mais detalhes, consulte Fazer upgrade do KVM.

Segregar APIs no Edge Analytics

(Adicionado na 2.5.26) As novas flags do plug-in de análise permitem que você separe um caminho de API específico para que ele apareça como um proxy separado nos painéis de análise do Edge. Por exemplo, é possível segregar 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 na versão 2.5.25) Com um proxy local, não é necessário criar manualmente um proxy compatível com microgateway no Apigee Edge. Em vez disso, o microgateway vai usar o caminho de base do proxy local. Para mais informações, consulte Usar o modo de proxy local.

Como usar o modo independente

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

Como revogar chaves

(Adicionado na 2.5.19) Um novo comando da CLI foi adicionado para revogar as credenciais de chave e secretas de uma configuração da microgateway do Edge.

edgemicro revokekeys -o [organization] -e [environment] -u [username] -k [key] -s [secret]
Para mais informações, consulte Revogar chaves.

Suporte ao Docker

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

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

Suporte ao Kubernetes

(Adicionado na versão 2.5.19) É possível implantar o Edge Microgateway como um serviço ou um gateway secundário na frente de serviços implantados em um cluster do Kubernetes. Consulte: Integrar o 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 são disparados imediatamente sempre que socket.write() é chamado). Consulte também a documentação do Node.js para mais detalhes.

Para ativar o 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 da CLI para monitoramento Forever

(Adicionado na versão 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 é "start".

Exemplos:

Para começar a usar o Forever:

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

Para interromper o Forever:

edgemicro forever -a stop

Rotação de chaves JWT

Um novo recurso foi adicionado para permitir a rotação dos pares de chaves públicas/privadas usados para gerar os tokens JWT usados para a segurança OAuth no microgateway do Edge. Consulte Como fazer rotação de chaves JWT.

Filtrar proxies de API salvos

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 mudar esse padrão para fazer o download de proxies cujos nomes correspondam 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 contém proxies de API. Essa configuração 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 oferece suporte a essa configuração de produto.

Suporte para monitoramento permanente

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

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

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

Suporte à opção "forever" da CLI

(Adicionado na versão 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 ao comando de recarga

(Adicionado na versão 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 na versão 2.5.7) Um atributo gracePeriod na configuração do OAuth ajuda a evitar erros causados por pequenas discrepâncias entre o relógio do sistema e os horários de validade (nbf) ou de emissão (iat) especificados no token de autorização JWT. Defina esse atributo como o número de segundos para permitir essas discrepâncias. Consulte Atributos do OAuth.

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

Bugs corrigidos na v2.5.x

  • (Problema 236) Correção de erro de digitação na limpeza do cache.
  • (Problema 234) O reload falha no Edge Microgateway 2.5.35.
  • (Problema 135) Erro "seguro" de referência de host virtual inválido 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 é especificado na flag "-v". Além disso, você pode especificar qualquer número e nome para o host virtual (não mais restrito a padrão e seguro).
  • (Problema 141) O comando edgemicro reload não oferece suporte à opção de arquivo de configuração -c. Esse problema foi corrigido.
  • (Problema 142) O Edge Microgateway reclama sobre a 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 do Apigee: https://community.apigee.com/questions/33149/emg-jwt-token-validated-against-both-api-proxies-a.html#answer-33336) Token JWT validado contra proxies de API e URI de recurso no OAUTH. Esse problema foi corrigido.
  • (Problema da comunidade do Apigee: https://community.apigee.com/questions/47846/microgateway-not-working-with-oauth.html) Microgateway não funciona com OAuth. Esse problema foi corrigido.
  • Correção do pidPath no Windows.
  • (Problema 157) O problema que causou a seguinte mensagem de erro foi corrigido: ReferenceError: deployProxyWithPassword não está definido.
  • (Issue #169) Atualização das dependências do Node.js (auditoria do npm)
  • O proxy edgemicro-auth agora usa as políticas do JWT do Edge. O proxy não depende mais do Node.js para oferecer suporte a JWT.

Versão 2.4.x

Novos recursos e melhorias v.2.4.x

1. Definir um alias personalizado para o proxy edgemicro-auth (PR 116)

É possível mudar o caminho de base padrão do proxy edgemicro-auth. Por padrão, o caminho base é /edgemicro-auth. Para mudar isso, use a flag -x no comando edgemicro configure.

Exemplo:

edgemicro configure -x /mypath …


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

É possível usar um ou mais caracteres curinga "*" no caminho de 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:o Apigee NÃO é compatível com o uso de um caractere curinga "*" como o primeiro elemento de um caminho base. Por exemplo, isto NÃO é compatível: /*/search.

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

Por padrão, o arquivo de configuração da microgateway está em ./config/config.yaml. Nos comandos de inicialização, configuração e início, agora é possível especificar um caminho de configuração personalizado na linha de comando usando as flags -c ou --configDir. Correção de um problema em que um diretório de configuração personalizado para instalações de nuvem particular não era reconhecido.

Exemplo:

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

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

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

Opção 1:

A primeira opção é definir a opção edgemicro: proxy_tunnel como "true" no arquivo de configuração da 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 encaminhar solicitações HTTP por uma única conexão TCP. O mesmo acontece se as variáveis de ambiente para configurar o proxy estiverem ativadas para TLS.

Opção 2:

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

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

Nesse caso, é possível definir as variáveis a seguir para controlar os hosts de cada proxy HTTP que você quer usar ou quais hosts não devem processar os proxies do 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 deve 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 segmentação (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 vai responder com um código de status 504.

6. Respeitar 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. Em 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 o client_ip para a análise

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

8. Mudanças no plug-in do OAuth

O plug-in OAuth oferece suporte à verificação de chave de API e de token de acesso OAuth. Antes dessa mudança, o plug-in aceitava qualquer forma de segurança. Com essa mudança, você pode permitir apenas um desses modelos de segurança, mantendo a compatibilidade com versões anteriores.

Os plug-ins do OAuth adicionam duas novas flags:

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

  • allowAPIKeyOnly: se definido como true, todas as APIs precisam ter um cabeçalho x-api-key (ou um local personalizado) com uma chave de API.

Defina essas flags 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).

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

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

Também é possível substituir a porta do endpoint de destino e escolher entre HTTP e HTTPS. Modifique estas 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 discussão 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 para autenticação em vez de nome de usuário/senha. Para usar um token OAuth, use o seguinte parâmetro no comando edgemicro configure:

-t, --token <token>

Exemplo:

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

Bugs corrigidos na v2.4.3

  • Correção de um problema em que uma organização paga era necessária para executar corretamente o proxy edgemicro-auth. Agora, você também pode usar o Edge Microgateway com organizações de teste. (PR 5)
  • Correção de um problema em que o stream não terminava de processar dados, mas os manipuladores finais estavam sendo executados Isso fez com que uma resposta parcial fosse enviada. (PR 71)
  • Correção de um problema em que um diretório de configuração personalizado para instalações de nuvem particular não era reconhecido. (PR 110)
  • Correção de um problema com o SSL bidirecional entre o cliente e o microgateway do Edge. (PR 70)
  • Correção de um problema em que um caractere de barra inclinada no final era necessário no caminho de base do proxy para que a verificação da chave de API funcionasse corretamente. Agora, não é necessário usar uma barra final 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 compatíveis com o microgateway uma instância do Edge Microgateway vai processar. Quando o Edge Microgateway é iniciado, ele faz o download de todos os proxies compatíveis com o microgateway na organização a que ele está associado. Use a configuração a seguir para limitar quais proxies a microgateway vai processar. Por exemplo, esta configuração limita os proxies que o microgateway processará para 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 impedir que as informações do caminho da solicitação apareçam no Edge Analytics. Adicione o seguinte à configuração do microgateway para mascarar o URI e/ou o caminho da solicitação. O URI consiste nas partes de nome de host e 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 automática de mudanças

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

disabled_config_poll_interval: true

Por padrão, a pesquisa periódica detecta todas as mudanças feitas no Edge (mudanças em produtos, proxies compatíveis com microgateway etc.), bem como as mudanças feitas no arquivo de configuração local. O intervalo de pesquisa padrão é de 600 segundos (cinco minutos).

Reescrever URLs de destino em plug-ins

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

Nova assinatura de função do plug-in

Uma nova assinatura de função do plug-in foi adicionada e 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 registro padrão simplificada

Por padrão, o serviço de registro agora omite o JSON de proxies, produtos e JWTs transferidos por download. É possível mudar 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 de inicialização, configuração e início, agora é possível 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 na v2.3.3

  • Foi corrigido um vazamento de memória que ocorreu durante solicitações/respostas grandes.
  • A ordem de execução do plug-in foi corrigida. Agora ele se comporta da maneira explicada na documentação.
  • O plug-in accumulate-request não fica mais travado em solicitações GET.
  • Um problema foi corrigido no plug-in de resposta acumulada em que a falta de um corpo de resposta causava erros.

Versão 2.3.1

Observação sobre a 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, use:

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 vai carregar na inicialização. Anteriormente, a microgateway carregava todos os proxies compatíveis com a microgateway (chamados edgemicro_*) extraídos da organização/ambiente do Edge especificado no comando de configuração edgemicro. Esse novo recurso permite filtrar essa lista de proxies para que o Edge Microgateway carregue apenas os especificados. Basta adicionar o elemento de proxy ao arquivo de configuração da microgateway desta forma:

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

Por exemplo, digamos que você tenha 50 proxies edgemicro_* no seu org/env do Edge, incluindo os chamados edgemicro_foo e edgemicro_bar. É possível informar ao microgateway para usar apenas esses 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 baixados da organização/ambiente do Edge resultará em um 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 os 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 não contém (como em uma solicitação GET simples).

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

A chave para esse padrão é acumular primeiro 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.

Confira um exemplo de código de plug-in que mostra como fazer isso. Os cabeçalhos definidos em onend_request são enviados para o 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, você poderá definir cabeçalhos de destino no gerenciador onrequest(). Esse padrão não é novo. Ele foi documentado anteriormente e usado nos plug-ins de exemplo 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 recarga sem inatividade

Depois de fazer uma mudança de configuração no microgateway do Edge, é possível carregar a configuração sem perder nenhuma mensagem. Com essa mudança, 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 esses 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 tempo de inatividade

O Edge Microgateway carrega uma nova configuração periodicamente e executa uma recarga se algo mudar. A pesquisa detecta todas as mudanças feitas no Edge (mudanças em produtos, proxies compatíveis com microgateway etc.) e no arquivo de configuração local. O intervalo de pesquisa padrão é de 600 segundos (cinco minutos). É possível mudar o padrão no arquivo de configuração da microgateway da seguinte forma:

edgemicro:
    config_change_poll_interval: [seconds]

Informações da versão adicionadas à CLI

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

edgemicro --version

Novas opções de SSL do servidor do Edge Microgateway

O Edge Microgateway agora 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 AC do cliente no formato PFX.
passphrase Uma string que contém a senha longa para a chave privada ou o PFX.
ca Caminho para um arquivo com uma lista de certificados confiáveis no formato PEM.
ciphers Uma string que descreve as cifras a serem usadas, separadas por um ":".
rejectUnauthorized Se verdadeiro, o certificado do servidor é verificado em relação à lista de ACs fornecidas. Se a verificação falhar, um erro será retornado.
secureProtocol O método SSL a ser usado. Por exemplo, SSLv3_method para forçar o SSL à versão 3.
servername O nome do servidor para a extensão TLS de SNI (indicação de nome do servidor).

Enviar arquivos de registro 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 Como gerenciar arquivos de registro.

Versão 2.1.2

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

Permitir endpoint da API personalizada para configuração

Há novos endpoints configuráveis para o proxy de autorização que oferecem suporte ao 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

Uma melhoria foi feita 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 da v.21.0

Confira a seguir os novos recursos e melhorias:

Especificar opções de SSL/TLS do cliente

É possível especificar opções de cliente para conexões SSL/TLS com destinos usando um novo conjunto de opções de configuração. Consulte Como usar as 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, use:

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

O comando de início permite 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 comando start para mais detalhes.

Opcionalmente, preserve cabeçalhos de autenticação

Uma nova configuração, keepAuthHeader, permite preservar o cabeçalho de autorização enviado na solicitação. Se definido como "true", o cabeçalho de autenticação será transmitido para o destino. Consulte atributos do OAuth.

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

Se você quiser usar seu próprio serviço personalizado para processar a autenticação, mude o valor authUri no arquivo de configuração do microgateway do Edge para apontar 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 as melhorias desta 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 detalhes sobre como criar produtos e configurar caminhos de recursos, consulte Criar produtos de API.

Suporte para o npm global install

Agora é possível instalar o Edge Microgateway usando a opção npm -g (global). Para saber mais 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 as melhorias desta 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 processo (anteriormente conhecido como "agente") inicia o microgateway do Edge, 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 têm um namespace usando organização e ambiente para que várias instâncias de Microgateway possam ser executadas no mesmo host. Os arquivos de configuração podem ser encontrados 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 sistema, não será necessário especificar os valores delas ao usar a interface de linha de comando (CLI) para configurar e iniciar a microgateway do Edge.

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 cluster. O modo de cluster permite aproveitar sistemas multicore. A 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 na v2.0.0

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

Versão 1.1.2

A versão 1.1.2 do Edge Microgateway foi lançada em 14 de março de 2016.

Novos recursos e melhorias v.1.1.2

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

Melhoria de desempenho

O Edge Microgateway agora usa o agente HTTP do Node.js corretamente para um melhor pool de conexões. Essa melhoria melhora o desempenho e a estabilidade geral sob carga alta.

Suporte ao depurador remoto

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

Novo local do arquivo de configuração

Ao configurar o Edge Microgateway, o arquivo agent/config/default.yaml agora é copiado para ~./edgemicro/config.yaml.

Rotação de arquivos de registro

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 bugs abaixo foram corrigidos na versão 1.1.2.

Descrição
O destaque em Java para o proxy edgemicro-internal usado com o Edge local agora usa o servidor MGMT correto.
Remova as dependências de typescript do agente.
Correção de um bug da CLI ao usar a opção de implantação simplificada.
Correção da referência de dependência da lógica de certificado.