Примечания к выпуску Edge Microgateway

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Версия 3.3.х

Исправления ошибок и улучшения версии 3.3.x

3.3.3

25 апреля 2024 г. мы выпустили следующие исправления и улучшения для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.3.3. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.3.3 3.3.3 3.3.3 3.3.3 3.2.2

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
315939218 Удаленный

Клиентский плагин Eureka был удален из Edge Microgateway. Удаление этой функции не влияет на основные функции Edge Microgateway и не влияет на перезапись целевых URL-адресов. Дополнительные сведения см. в разделе «Перезапись целевых URL-адресов в плагинах» .

283947053 Удаленный

Поддержка forever-monitor была удалена из Edge Microgateway. Вы можете заменить forever-monitor на PM2. Подробности см. в этом сообщении сообщества Apigee: Edgemicro + PM2: запуск Edgemicro как службы .

Исправлены проблемы с безопасностью

  • 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

18 августа 2023 г. мы выпустили следующие исправления и улучшения для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.3.2. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.3.2 3.3.2 3.3.2 3.3.2 3.2.2

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
296187679 Особенность

Поддерживаемые версии Node.js : 16, 18 и 20. Начиная с версии 3.3.2, команды CLI Edge Microgateway будут работать только в поддерживаемых версиях. Выполнение команд CLI в неподдерживаемых версиях приведет к ошибке. См. также раздел Поддерживаемое Apigee программное обеспечение и поддерживаемые версии .

283947053 Ошибка

Исправлена ​​проблема, из-за которой Edge Microgateway возвращал первый продукт API в списке продуктов API, связанных с приложением. Теперь мы определяем правильный продукт API для возврата на основе запроса.

274443329 Ошибка

Исправлена ​​проблема, из-за которой Docker извлекал устаревшую версию образа. Версия узла Docker обновлена ​​до Node.js версии 18. Теперь мы собираем образ Docker с версией 18.17-buster-slim .

Исправлены проблемы с безопасностью

Никто.

3.3.1

7 июня 2022 г. мы выпустили следующие исправления и улучшения для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.3.1. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.3.1 3.3.1 3.3.1 3.3.1 3.2.2

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
220885293 Особенность

Node.js версии 16 теперь поддерживается.

231972608 Ошибка

Исправлена ​​проблема, из-за которой команда private configure выдавала ошибку при попытке настроить частное облако.

233315475 Ошибка

Исправлена ​​проблема, из-за которой плагин json2xml выдавал ошибку синтаксического анализа при преобразовании ответа из JSON в XML и при использовании в сочетании с плагином accumulate-response .

221432797 Изменять

Версия Docker Node.js базового образа Edge Microgateway была обновлена ​​до Node.js 14.

215748732 Особенность

В команду revokekeys добавлена ​​поддержка аутентификации по токену SAML.

Теперь вы можете передать токен SAML вместо учетных данных имени пользователя и пароля, используя опцию -t в команде revokekeys .

Подробности см. в справочнике по командной строке .

218723889 Обновление документа

Документация была обновлена ​​и теперь включает ссылку на поддерживаемые плагины Edge Microgateway, хранящиеся на GitHub. См. раздел «Существующие плагины, входящие в состав Edge Microgateway» .

Исправлены проблемы с безопасностью

Идентификатор проблемы Описание
CVE-2021-23413 Это влияет на пакет jszip до версии 3.7.0. Создание нового zip-файла с именами файлов, для которых установлены значения прототипа объекта (например, proto, toString и т. д.), приводит к возвращению объекта с измененным экземпляром прототипа.

3.3.0

4 февраля 2022 г. мы выпустили следующие исправления и улучшения для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.3.0. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.3.0 3.3.0 3.3.0 3.3.0 3.2.2

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
219556824 Известная проблема Edge Microgateway Gateway 3.3.0 несовместим с командой npm Audit Fix .

Выполнение npm audit fix приводит к обновлению apigeetool до версии 0.15.2, что влияет на команду edgemicro upgradeauth .

Если вы выполните npm audit fix , а затем выполните edgemicro upgradeauth , вы увидите эту ошибку:

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

Чтобы исправить проблему, выполните следующую команду, чтобы восстановить правильную версию apigeetool :

npm install apigeetool@0.15.1

Эта проблема будет решена в будущей версии Edge Microgateway.

138622990 Особенность

Новый флаг для плагина Quota, isHTTPStatusTooManyRequestEnabled , настраивает плагин на возврат статуса ответа HTTP 429 вместо статуса 403 в случае нарушения квоты. См. Параметры конфигурации для квоты .

192534424 Ошибка

Исправлена ​​проблема, из-за которой код ответа, отображаемый в аналитике Apigee, не соответствовал коду ответа Edge Microgateway.

198986036 Улучшение Edge Microgateway теперь извлекает открытый ключ поставщика удостоверений (IDP) при каждом интервале опроса, а также обновляет ключ в случае изменения открытого ключа IDP. Ранее плагин extauth не мог обновить открытый ключ без перезагрузки Edge Microgateway, если открытый ключ IDP изменился.
168713541 Ошибка

Документация была расширена и теперь объясняет, как настроить TLS/SSL для нескольких целей. См. Использование параметров клиента SSL/TLS .

171538483 Ошибка

Документация была изменена, чтобы исправить соглашение об именовании файлов журнала. См. раздел Соглашения об именах файлов журналов .

157908466 Ошибка

Документация была изменена, чтобы правильно объяснить, как установить конкретную версию Edge Microgateway. См. раздел Обновление Edge Microgateway, если у вас есть подключение к Интернету .

215748427 Ошибка Исправлена ​​проблема, из-за которой команда revokekeys возвращала ошибку при отзыве ключа с использованием существующей пары ключа и секрета.
205524197 Ошибка Документация была обновлена ​​и теперь включает полный список уровней ведения журнала. См. Атрибуты Edgemicro и Как установить уровень ведения журнала .

Версия 3.2.х

Исправления ошибок и улучшения версии 3.2.x

3.2.3

17 сентября 2021 г. мы выпустили следующие исправления и улучшения для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.2.3. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.2.3 3.2.3 3.2.3 3.2.3 3.2.2

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
192416584 Особенность

Атрибут конфигурации disableStrictLogFile позволяет ослабить строгие права доступа к файлу журнала приложения api-log.log . Подробности см . в разделе «Как ослабить права доступа к файлу журнала» .

192799989 Особенность

Атрибут конфигурации on_target_response_abort позволяет вам контролировать поведение Edge Microgateway, если соединение между клиентом (Edge Microgateway) и целевым сервером закрывается преждевременно. Подробности см. в разделе атрибуты Edgemicro .

148062415 Ошибка Исправлена ​​проблема, из-за которой в контексте контейнера Docker Edge Microgateway не завершал работу корректно с помощью команды docker stop {containerId} . Процесс был остановлен, но файлы .sock и .pid не были удалены. Теперь файлы удалены, и перезапуск того же контейнера работает как положено.
190715670 Ошибка Исправлена ​​проблема, из-за которой некоторые запросы зависали во время внутренней перезагрузки микрошлюза. Эта проблема носила периодический характер и возникала в ситуациях с интенсивным движением транспорта. Проблема наблюдалась при использовании функций tokenCache и cacheKey плагина OAuth.
183910111 Ошибка Исправлена ​​проблема, из-за которой URL-адрес пути к ресурсу с косой чертой на конце неправильно интерпретировался как отдельный путь к ресурсу. Теперь, например, пути /country/all и /country/all/ интерпретируются как один и тот же путь.

Исправлены проблемы с безопасностью

Идентификатор проблемы Описание
CVE-2020-28503 Копии пакета до версии 2.0.5 уязвимы к загрязнению прототипов через основную функциональность.
CVE-2021-23343 Все версии анализа пути пакета уязвимы к отказу в обслуживании с использованием регулярных выражений (ReDoS) через регулярные выражения SplitDeviceRe, SplitTailRe и SplitPathRe. ReDoS демонстрирует полиномиальную временную сложность в худшем случае.

3.2.2

В четверг, 15 июля 2021 г., мы выпустили следующие исправления и улучшения Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.2.2. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.2.2 3.2.2 3.2.2 3.2.2 3.2.2

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
185323500 Изменять

Значение expires_in изменено со строки на целое число

API-интерфейсы запроса токена и запроса токена обновления теперь возвращают expires_in как целочисленное значение, указанное в секундах.

В целях соответствия RFC 6749 Платформа авторизации OAuth 2.0 ожидаемое значение параметра конфигурации expires_in было изменено со строкового на целое число. Подробную информацию см. в разделе «Справочник по эксплуатации и настройке» .

188492065 Изменять Окончание поддержки Node.js 8

Начиная с версии 3.2.2 Node.js 8 больше не будет поддерживаться. Дополнительные сведения см. в разделе Поддерживаемое программное обеспечение и поддерживаемые версии: Edge Microgateway .

183990345 Особенность Настройка вывода журнала для контейнера Docker

Параметр конфигурации Edge Microgateway to_console позволяет отправлять информацию журнала на стандартный вывод, а не в файл журнала. Если вы выполните действия по запуску Edge Microgateway в контейнере Docker, контейнер по умолчанию перенаправляет стандартный вывод и выходные данные ошибок в файл, расположенный в контейнере по адресу: ${APIGEE_ROOT}/logs/edgemicro.log .

Чтобы предотвратить отправку информации журнала в edgemicro.log , используйте новую переменную LOG_CONSOLE_OUTPUT_TO_FILE при запуске контейнера.

Подробную информацию о том, как использовать эту новую переменную, см. в разделе «Использование Docker для Edge Microgateway» .

183057665 Особенность Сделайте пути к файлам edgemicro.pid и edgemicro.sock настраиваемыми.

Новый параметр -w, --workdir для запуска контейнера Docker с помощью Edge Microgateway позволяет указать путь к каталогу, в котором файлы edgemicro.sock и edgemicro.pid должны быть созданы в контейнере Docker. См. Использование Docker для Edge Microgateway .

191352643 Особенность Образ Docker для Edge Microgateway был обновлен для использования NodeJS версии 12.22. См. Использование Docker для Edge Microgateway .

Исправлены проблемы с безопасностью

Идентификатор проблемы Описание
CVE-2021-28860 В Node.js mixme до версии 0.5.1 злоумышленник может добавлять или изменять свойства объекта через «__proto__» с помощью функций mutate() и merge(). Атрибут «загрязненный» будет напрямую присвоен каждому объекту в программе. Это поставит доступность программы под угрозу и может привести к отказу в обслуживании (DoS).
CVE-2021-30246 В пакете jsrsasign до 10.1.13 для Node.js некоторые недействительные подписи RSA PKCS#1 v1.5 ошибочно признаются действительными. ПРИМЕЧАНИЕ. Практическая атака не известна.
CVE-2021-23358 Пакет подчеркивания версий 1.13.0-0 и ранее 1.13.0-2, 1.3.2 и ранее 1.12.1 уязвим к внедрению произвольного кода через функцию шаблона, особенно когда свойство переменной передается в качестве аргумента в том виде, в котором оно есть. не дезинфицируется.
CVE-2021-29469 Node-redis — это клиент Redis для Node.js. До версии 3.1.1, когда клиент находится в режиме мониторинга, регулярное выражение, используемое для обнаружения сообщений монитора, могло вызвать экспоненциальный возврат в некоторых строках. Эта проблема может привести к отказу в обслуживании. Проблема исправлена ​​в версии 3.1.1.
CVE-2020-8174 Образ Docker был обновлен для использования Node.js версии 12.22.

3.2.1

В пятницу, 5 марта 2021 г., мы выпустили следующие исправления и улучшения Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.2.1. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.2.1 3.2.1 3.2.1 3.2.1 3.2.1

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
180362102 Ошибка Исправлена ​​проблема, из-за которой ключи JWK, имеющие нулевое значение, приводили к сбою приложений.

Условие null теперь обрабатывается, чтобы избежать передачи значения null в jwkPublicKeys .

Примечание. Это исправление требует обновления прокси-сервера EdgeMicro-Auth .

179971737 Ошибка Исправлена ​​проблема, из-за которой ответы о состоянии целевых 4XX/5XX регистрировались как ошибки прокси для прокси Edgemicro_* .

Для транзакций Edge Microgateway на панели анализа кодов ошибок Apigee Edge отображалось неправильное количество целевых ошибок. Коды ошибок для целевых ошибок считались ошибками прокси. Эта проблема исправлена, и теперь отображается правильное количество целевых ошибок.

179674670 Особенность Была добавлена ​​новая функция, позволяющая фильтровать список продуктов API, помещенных в JWT, на основе кодов состояния продуктов.

Продукты API имеют три кода статуса: «Ожидание», «Утверждено» и «Отменено». В политику установки переменных JWT в прокси-сервере Edgemicro-auth было добавлено новое свойство allowProductStatus которое называетсяallowProductStatus. Чтобы использовать это свойство для фильтрации продуктов API, перечисленных в JWT:

  1. Откройте прокси-сервер EdgeMicro-Auth в редакторе прокси Apigee.
  2. Добавьте allowProductStatus в XML-код политики SetJWTVariables и укажите разделенный запятыми список кодов состояния для фильтрации. Например, чтобы отфильтровать статусы «Ожидание» и «Отменено» :
    <?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>
    
    

    Если вы хотите, чтобы в списке отображались только утвержденные продукты, установите это свойство следующим образом:

    <Property name="allowProductStatus">Approved</Property>
  3. Сохраните прокси.

    Если тег Property отсутствует, продукты со всеми кодами состояния будут перечислены в JWT.

    Чтобы использовать это новое свойство, необходимо обновить прокси-сервер EdgeMicro-Auth .

178423436 Ошибка Значения ключа и секрета, передаваемые в CLI или через переменные среды, видны в аргументах командной строки проводника процессов.

Сообщалось о проблеме, из-за которой ключ и секретные значения Edge Microgateway, которые были переданы либо из аргументов командной строки, либо заданы через переменные среды, отображались в аргументах рабочих/дочерних процессов узла после запуска микрошлюза.

Чтобы устранить эту проблему для сценария с переменной среды, значения больше не отображаются в аргументах командной строки обозревателя процессов.

Если значения ключа и секрета передаются в командной строке при запуске микрошлюза, настройки заменяют любые значения переменных среды, если они установлены. В этом случае значения по-прежнему отображаются в аргументах командной строки проводника процессов.

178341593 Ошибка Исправлена ​​ошибка документации плагина apikeys .

Файл README плагина apikeys неправильно включал свойство gracePeriod . Мы удалили это свойство и его описание из README.

Свойство gracePeriod реализовано в плагине oauth . Чтобы использовать функцию льготного периода, вы должны использовать плагин oauth .

179366445 Ошибка Устранена проблема, из-за которой полезные данные отбрасывались для всех запросов GET к целевым объектам.

Вы можете контролировать желаемое поведение с помощью нового параметра конфигурации edgemicro: enable_GET_req_body . Если установлено значение true , заголовок запроса transfer-encoding: chunked добавляется ко всем запросам GET, а полезные данные GET, если они присутствуют, отправляются в цель. Если значение false (по умолчанию), полезная нагрузка автоматически удаляется перед отправкой запроса целевому объекту.

Например:

edgemicro:
 enable_GET_req_body: true

Согласно RFC 7231, раздел 4.3.1: GET , полезная нагрузка запроса GET не имеет определенной семантики, поэтому ее можно отправить цели.

3.2.0

В четверг, 21 января 2021 г., мы выпустили следующие исправления и улучшения для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.2.0. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.2.0 3.2.0 3.2.0 3.2.0 3.2.0

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
152640618 Ошибка Включен плагин extauth , чтобы заголовок x-api-key содержал client_id в объекте запроса, когда токен действителен. Затем x-api-key доступен для последующих плагинов.
168836123, 172295489, 176462355, 176462872 Особенность Добавлена ​​поддержка Node.js 14.
172376835 Ошибка Используйте правильную единицу времени для конечной точки /token в прокси-сервере edgemicro-auth .

Исправлена ​​проблема, из-за которой конечная точка /token в прокси-сервере edgemicro-auth возвращала expires_in через миллисекунды; однако согласно спецификации OAuth оно должно соответствовать единице времени refresh_token_expires_in , то есть секундам.

Исправление не меняет продолжительность срока действия, а только единицу времени. Это применимо только к полю expires_in в полезных данных ответа токена доступа. Токен JWT в той же полезной нагрузке ответа будет содержать два поля, iat и exp , и они генерируются правильно и всегда были с единицей времени seconds .

Если бы клиенты полагались на значение expires_in в миллисекундах для обновления токенов до истечения срока их действия, то применение этого исправления без изменения клиентов привело бы к гораздо более частым и ненужным обновлениям. Эти клиенты необходимо будет изменить, чтобы учесть изменение единиц времени, чтобы сохранить исходное поведение.

Если клиенты всегда использовали значения токена JWT для оценки периода обновления токена, то клиентам не нужно ничего менять.

173064680 Ошибка Исправлена ​​проблема, из-за которой микрошлюз завершал целевой запрос до того, как были обработаны все фрагменты данных.

Это периодически возникающая проблема, наблюдаемая при запросах большого размера полезной нагрузки, и эта проблема появилась в выпуске 3.1.7.

174640712 Ошибка Добавьте правильную обработку данных в плагины.

Правильная обработка данных была добавлена ​​в следующие плагины: json2xml , accumulate-request , accumulate-response и header-uppercase . Подробности о плагине см. в разделе microgateway-plugins .

Версия 3.1.х

Исправления ошибок и улучшения версии 3.1.x

3.1.8

В понедельник, 16 ноября 2020 г., мы выпустили следующие исправления и улучшения для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.1.8. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.1.8 3.1.9 3.1.7 3.1.3 3.1.2

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
169201295 Ошибка Числовые и логические значения неправильно анализировались в тегах переменных среды.

Обработка замены переменных среды анализировала все значения как строки, что приводило к ошибкам анализа логических или числовых значений. Например, edgemicro.port ожидает и требует числовое значение. Были внесены исправления для поддержки логических и числовых значений. Подробные сведения о конфигурации см. в разделе Установка атрибутов конфигурации со значениями переменных среды .

169202749 Ошибка Замена переменных среды в некоторых случаях не работала.

Обработка замены переменных среды не работала для некоторых атрибутов конфигурации. Информацию об ограничениях см. в разделе Настройка атрибутов конфигурации со значениями переменных среды .

168732942 Ошибка Исправлена ​​проблема, из-за которой области OAuth не ограничивали доступ к прокси-серверу API, как ожидалось.

Поток /token в прокси-сервере Edgemicro-auth генерировал JWT без правильных областей продукта, определенных в Edge, в результате двух разных сценариев: 1) полезная нагрузка запроса к потоку /token не передала параметр области или 2) недопустимый область действия была передана в полезных данных запроса в поток /token . Внесено исправление для возврата всех областей, определенных в продуктах API в Apigee Edge.

170609716 Ошибка Исправлена ​​проблема, из-за которой поток /refresh в прокси-сервере Edgemicro-auth создавал JWT без apiProductList .

170708611 Ошибка Области продукта API недоступны для пользовательских плагинов.

Области продукта API не были доступны для пользовательских плагинов и не записывались в файл конфигурации кэша. См. раздел «О функции init() плагина» , чтобы узнать, как детали области становятся доступными для плагинов.

169810710 Особенность Ключ и секрет сохраняются в файле конфигурации кэша.

Ключ и секрет Edge Microgateway сохранялись в yaml-файле конфигурации кэша при каждой перезагрузке/запуске. В версии 3.1.8 ключ и секрет больше не сохраняются в файле конфигурации кэша. Если ключ и секрет ранее были записаны в файле конфигурации кэша, они будут удалены.

170708621 Особенность Невозможно отключить плагин аналитики.

В предыдущих версиях микрошлюза плагин аналитики был включен по умолчанию, и отключить его было невозможно. В версии 3.1.8 был введен новый параметр конфигурации enableAnalytics для включения или отключения плагина аналитики. Подробности см. в справочнике по конфигурации .

159571119 Ошибка Получение нулевой ошибки в ловушке onerror_request в пользовательских плагинах для тайм-аута ответа/сокета.

Были внесены исправления для заполнения правильного кода состояния HTTP и сообщения об ошибке для событий onerror_request , а также правильного сообщения об ошибке для событий onerror_response .

3.1.7

В четверг, 24 сентября 2020 г., мы выпустили следующие исправления и улучшения Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.1.7. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.1.7 3.1.8 3.1.6 3.1.2 3.1.1

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
131708105 Ошибка Плагин analytics неправильно обработал нулевой ответ на вызовы axpublisher и заставил работников выйти.

133162200 Ошибка Информация о приложении разработчика не была заполнена в аналитике ни ответами о состоянии 403, вызванными неавторизованными путями к ресурсам продукта, ни ответами 401, вызванными просроченным или недействительным токеном.

132194290 Ошибка Записи аналитики отбрасываются, когда Apigee Edge отклоняет некоторые записи аналитики.

158618994 Ошибка Чрезмерное количество клиентских подключений Redis.

161404373 Ошибка В случае ответа о статусе 404 полный URI прокси-сервера был включен в ответное сообщение.
166356972 Ошибка

Запуск Edge Microgateway с Node.js версии 12.13.x или выше привел к следующей ошибке при выполнении плагинов, которые преобразуют полезные данные запроса:

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

168681746 Ошибка Ручная перезагрузка Edge Microgateway с помощью redisBasedConfigCache:true не работала.

149256174 Ошибка Ошибки плагина OAuth не регистрировались из-за сбоев сети.

166517190 Ошибка Данные jwk_public_keys не сохранялись и не извлекались Synchronizer и не хранились в Redis.

141659881 Ошибка Обработка ошибок недействительного целевого сертификата привела к вводящим в заблуждение ответам об ошибках.

142808699 Ошибка Плагин контроля доступа неправильно обрабатывал разделы «разрешить» и «запретить».

Микрошлюз теперь правильно обрабатывает раздел запрета и соблюдает порядок разделов «разрешить» и «запретить». В файл конфигурации микрошлюза было добавлено новое свойство noRuleMatchAction для обеспечения четности с политикой Apigee Edge AccessControl . См. также README плагина контроля доступа на GitHub.

3.1.6

В четверг, 20 августа 2020 г., мы выпустили следующие исправления и улучшения для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.1.6. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.1.6 3.1.7 3.1.5 3.1.1 3.1.1

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
163711992 Особенность Параметры расположения настраиваемых ключей и файлов сертификатов для команды RotateKey.

Подробную информацию об этих новых параметрах команды см. в разделе «Поворот клавиш» .

154838259 Ошибка Исправлена ​​ротация ключей для нескольких экземпляров в нескольких центрах обработки данных.

Подробную информацию об этих новых параметрах команды см. в разделе «Поворот клавиш» .

145525133 Альфа-функция Новые метрики плагина

Подробности см. в README новых показателей плагина на GitHub.

159396879 Ошибка Удалить неиспользуемый пакет Helper
161092943 Ошибка Проверка базового пути неверна.

До версии 3.1.6 базовый путь прокси-сервера сопоставлялся неправильно, если базовый путь не заканчивался на / .

Нижеследующее объясняет предыдущее поведение (которое исправлено в версии 3.1.6):

Предположим, что прокси-сервер настроен с использованием базового пути: /hello/v1 и целевого пути к https://mocktarget.apigee.net . Теперь предположим, что прокси получает следующие запросы:

Путь запроса Решенный путь Исход
/привет/v1/json https://mocktarget.apigee.net/json Разрешенный путь правильный, поскольку базовый путь /hello/v1 сопоставляется правильно.
Путь запроса Решенный путь Исход
/привет/v1json https://mocktarget.apigee.netjson Разрешенный путь неверен, поскольку /hello/v1 является подстрокой /hello/v1json . Поскольку /hello/v1json не является допустимым путем, Edge Microgateway должен был выдать ошибку 404. В версии 3.1.6 и более поздних версиях в этом случае выдается ошибка 404.
160431789 Ошибка Пользовательские плагины — объект конфигурации, переданный в init, не заполняется

Конфигурация Apigee Edge становится доступной в объекте конфигурации для всех пользовательских плагинов после слияния с файлом конфигурации Edge Microgateway. Смотритеконфиг .

162758808 Ошибка Новая конфигурация квот для резервного хранилища Redis

Вы можете использовать следующую конфигурацию, чтобы указать резервное хранилище Redis для квот. Подробности см. в разделе Использование резервного хранилища Redis для квоты .

3.1.5

В пятницу, 26 июня 2020 г., мы выпустили следующие исправления и улучшения для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.1.5. Обратите внимание: поскольку каждый компонент представляет собой отдельный проект, номера выпусков могут не совпадать с основной версией продукта:

микрошлюз основной конфигурация плагины Edgeauth
3.1.5 3.1.6 3.1.4 3.1.0 3.1.0

Исправления ошибок и улучшения:

Идентификатор проблемы Тип Описание
159210507 Особенность Конфигурация для исключения обработки плагина

Была добавлена ​​новая функция конфигурации, позволяющая пропустить обработку плагинов для указанных URL-адресов. Подробности см. в разделе Настройка исключаемых URL-адресов для плагинов .

156986819, 158529319 Ошибка Исправлены проблемы с плагином json2xml

Исправлены проблемы, из-за которых плагин создавал повторяющиеся заголовки Content-Type и в некоторых случаях заголовки не отправлялись в цель, как ожидалось.

156560067, 159688634 Особенность

Использовать значения переменных среды в конфигурации

Была добавлена ​​функция, позволяющая указывать переменные среды с помощью тегов в файле конфигурации. Указанные теги переменных среды заменяются фактическими значениями переменных среды. Замены хранятся только в памяти, а не в исходных файлах конфигурации или кэше. Дополнительные сведения см. в разделе Настройка атрибутов конфигурации с помощью значений переменных среды .

155077210 Ошибка Исправлена ​​проблема с форматированием журнала.

Исправлена ​​проблема, из-за которой целевой хост появлялся в журналах с добавленными к нему посторонними двоеточиями.

153673257 Ошибка

(Только Edge для частного облака) Продукты с поддержкой Microgateway не извлекаются

Исправлена ​​проблема, из-за которой продукты с поддержкой микрошлюза не извлекались. Эта проблема существовала только в установках Edge для частного облака.

154956890, 155008028, 155829434 Особенность Поддержка фильтрации загруженных продуктов по настраиваемым атрибутам.

Подробную информацию см. в разделе Фильтрация товаров по пользовательским атрибутам.

153949764 Ошибка Исправлена ​​проблема, из-за которой процесс Edge Microgateway завершался сбоем, когда файл назначения журнала был заполнен.

Обработка исключений была улучшена: ошибка перехватывается и выводится сообщение на консоль.

155499600 Ошибка Исправлены проблемы с ротацией ключей и обновлением KVM.

См. также Поворот клавиш JWT .

3.1.4

В пятницу, 23 апреля 2020 г., мы выпустили следующее исправление для Edge Microgateway.

Исправление ошибки:

Исправлена ​​проблема с зависимостями в версии 3.1.3. Версия 3.1.3 помечена как устаревшая в репозитории npm . В противном случае все исправления ошибок и улучшения, описанные в примечаниях к выпуску версии 3.1.3, применимы к этому выпуску.

3.1.3

В среду, 15 апреля 2020 г., мы выпустили следующие исправления и улучшения для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий отдельных проектов компонентов, связанных с Edge Microgateway 3.1.3. Обратите внимание, что, поскольку каждый компонент является отдельным проектом, номера выпуска могут не совпадать с основной версией продукта:

Microgateway основной конфигурация плагины Эджоут
3.1.3 3.1.3 3.1.3 3.0.14 3.0.9

Исправления и усовершенствования ошибок:

  • 153509313 - Проблема была исправлена, когда модуль отладки Node.js приводит к утечкам памяти. Проблема существует в версии V3.1.0, V3.1.1 и 3.1.2.
  • 153509313 - Проблема была исправлена, когда один и тот же идентификатор сообщения для двух разных транзакций был напечатан на выходе журнала.
  • 151673570 - Проблема была исправлена, когда Edge Microgateway не была обновлена, чтобы использовать новые API APIGEE KVM. Edge Microgateway теперь использует новые команды для добавления и обновления значений KVM.
  • 152822846 - В предыдущих выпусках Edge Microgateway был обновлен так, чтобы его обработка отображения пути ресурса соответствовала обработке Apigee Edge. В этом выпуске была исправлена ​​проблема, когда шаблон / literal_string /* не обрабатывался правильно. Например, /*/2/* . См. Также Настройка поведения пути ресурса '/', '/*' и '/**' .
  • 152005003 - Были внесены изменения, чтобы обеспечить идентификаторы организации и окружающей среды для квот.
  • 152005003 - Были внесены изменения, чтобы обеспечить идентификаторы организации и окружающей среды для квот. Комбинация «org + env + appname + productname» используется в качестве идентификатора квоты.

3.1.2

В понедельник, 16 марта 2020 года, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий для отдельных компонентных проектов, связанных с Edge Microgateway 3.1.3. Обратите внимание, что, поскольку каждый компонент является отдельным проектом, номера выпуска могут не совпадать с основной версией продукта:

Microgateway основной конфигурация плагины Эджоут
3.1.2 3.1.2 3.1.2 3.0.13 3.0.9

Исправления и усовершенствования ошибок:

  • 151285018 - Было сделано улучшение функции, чтобы добавить HTTP -прокси -поддержку для трафика между Edge Microgateway и бэкэнд -мишенями. Кроме того, были исправлены проблемы для существующей поддержки прокси HTTP между Edge Microgateway и Apigee Edge. Подробности см.:
  • 149101890 - Код уведомления журнала для случаев, когда целевой сервер или балансировщик загрузки закрывают его соединение, был изменен от ошибки на информацию.
  • 150746985-Проблема была исправлена, в которой команда edgemicro verify не работает должным образом, если redisBasedConfigCache: true или quotaUri: https://%s-%s.apigee.net/edgemicro-auth присутствовали в файле конфигурации.
  • 151284716 - Было сделано улучшение для быстрее закрытия серверных соединений, когда работники перезагружаются во время перезагрузки.
  • 151588764 - Версия Update Node.js в изображении Docker, используемое для запуска Edge Microgateway в контейнере Docker до 12, потому что Node.js V8 устарел.
  • 151306049 - Обновление документации было сделано для перечисления API управления Apigee Edge, которые используются командами CLI Edge Microgateway. Видите , какие API управления используют Edge Microgateway? .

3.1.1

В четверг, 20 февраля, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий для отдельных компонентных проектов, связанных с Edge Microgateway 3.1.1. Обратите внимание, что, поскольку каждый компонент является отдельным проектом, номера выпуска могут не совпадать с основной версией продукта:

Microgateway основной конфигурация плагины Эджоут
3.1.1 3.1.1 3.1.1 3.0.13 3.0.9

Исправления и усовершенствования ошибок:

  • 146069701 - Проблема была исправлена, когда модуль microgateway-core не уважал переменные среды HTTP_PROXY и HTTPS_PROXY . С этим изменением настройки прокси в файле конфигурации YAML, если указано, теперь игнорируются; Только переменные среды используются для указания прокси.

    Если вы хотите указать конфигурацию прокси в файле конфигурации, необходимо также указать переменную HTTP_PROXY , в которой упоминается тот же URL -адрес прокси, что и в файле конфигурации. Например, если вы указываете следующую конфигурацию:

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

    Вы также должны указать эту переменную среды:

    HTTP_PROXY=http://10.128.0.20:3128
  • 146320620 - был добавлен новый параметр конфигурации, edgemicro.headers_timeout . Этот атрибут ограничивает количество времени (в миллисекундах), что анализатор HTTP будет ждать, чтобы получить полные заголовки HTTP. Например:
    edgemicro:
    keep_alive_timeout: 6000
    headers_timeout: 12000

    Внутри этот параметр устанавливает атрибут Node.js Server.headersTimeout для запросов. (По умолчанию: на 5 секунд больше, чем время, установленное с edgemicro.keep_alive_timeout . Эта настройка по умолчанию не позволяет балансировщикам нагрузки или прокси ошибочно отбрасывает соединение.)

  • 149278885 - была добавлена ​​новая функция, которая позволяет устанавливать целевой тайм -аут API на уровне прокси API вместо использования одного глобального тайм -аута.

    Если вы установите свойство TargetendPoint io.timeout.millis в прокси-сервере API, Edge Microgateway сможет получить это свойство и применить тайм-ауты целевой конечной точки. Если этот параметр не применяется, Edge Microgateway использует глобальный тайм -аут, указанный с edgemicro.request_timeout .

3.1.0

Во вторник, 21 января, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий для отдельных компонентных проектов, связанных с Edge Microgateway 3.1.0. Обратите внимание, что, поскольку каждый компонент является отдельным проектом, номера выпуска могут не совпадать с основной версией продукта:

Microgateway основной конфигурация плагины Эджоут
3.1.0 3.1.0 3.1.0 3.0.12 3.0.9

Исправления и усовершенствования ошибок:

  • 144187500 - Новое событие Warn Level будет зарегистрировано, когда запускается флаг quotas.failOpen . Этот флаг запускается, если возникает ошибка обработки квот или если запрос «Применить квоту» на Edge не может обновить счетчики удаленных квот. В этом случае квота будет обрабатываться на основе локальных подсчетов только до тех пор, пока не произойдет следующая успешная синхронизация удаленной квоты. Ранее это событие было зарегистрировано только тогда, когда уровень журнала был установлен для отладки.

    Например:

    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 - Проблема была устранена, когда в полете или новые транзакции повлияли всякий раз, когда Edge Microgateway обнаруживал изменение в прокси API. Теперь, когда изменение внесено в прокси, Edge Microgateway обновляет кэш и рабочие узлы перезагрузиться. С этим изменением транзакции в полете и новые вызовы API, отправляемые в Microgateway, не влияют.
  • 146378327 - Уровень журнала sourceRequest , targetRequest и targetResponse был изменен на информационный уровень.
  • 146019878 - Расхождение между задержкой, которая была рассчитана для «производительности API -прокси» в аналитике Edge и Edge Microgateway SourcerSponse/TargetResponse Events был фиксирован. Теперь задержка в Edge Analytics и события журнала Microgateway выровнены.
  • Изменения логики, связанные с подходящим шаблоном:
    • 147027862 - плагин OAuth был обновлен, чтобы поддержать следующие шаблоны соответствия пути ресурса, как указано в продуктах API:
      • /{literal}**
      • /{literal}*
      • Любая комбинация из двух шаблонов

      С этим изменением плагин Edge Microgateway теперь следует тому же, что и Apigee Edge, как объяснено при настройке поведения пути ресурса '/', '/*' и '/**' .

    • 145644205 - Обновление схемы соответствия плагина Apikeys в соответствии с плагином OAuth.
  • 143488312 - Проблема была решена, когда ведущие или следственные места в параметре идентификатора клиента привели к тому, что создание списка продуктов JWT было пустым для запросов на токен OAuth и API.
  • 145640807 и 147579179 - была добавлена ​​новая функция, которая позволяет специальному экземпляру Microgateway, называемому «синхронизатор» для извлечения данных конфигурации от Apigee Edge и записать его в локальную базу данных Redis. Другие экземпляры Microgateway могут затем быть настроены для чтения данных их конфигурации из базы данных. Эта функция добавляет уровень устойчивости к Edge Microgateway. Это позволяет экземплярам Microgateway запускаться и функционировать без необходимости общения с Apigee Edge. Для получения подробной информации см. Использование синхронизатора .

    Функция Syncrhonizer в настоящее время поддерживается для работы с Redis 5.0.x.

Версия 3.0.x

Исправления и усовершенствования ошибок v.3.0.x

3.0.10

В пятницу, 8 ноября, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий для отдельных компонентных проектов, связанных с Edge Microgateway 3.0.10. Обратите внимание, что, поскольку каждый компонент является отдельным проектом, номера выпуска могут не совпадать с основной версией продукта:

Microgateway основной конфигурация плагины Эджоут
3.0.10 3.0.8 3.0.8 3.0.11 3.0.8

Исправления и усовершенствования ошибок:

  • 142677575 - Обновление функции было сделано таким образом, чтобы соответствие шаблонов для пути ресурсов, используемых в продуктах API для Edge Microgateway, теперь соответствует соответствующему сопоставлению шаблонов ресурса, используемым Apigee Edge, как описано при настройке поведения ресурсного пути '/', '/*', и '/**' .

    ПРИМЕЧАНИЕ. Если вы используете шаблон составного ресурса, такой как /*/2/** , вы должны убедиться, что прокси edgemicro_auth добавляется в автономный продукт API. Затем вы должны включить этот продукт в приложение Developer Proxy, как показано на следующем скриншоте:

    alt_text

    ПРИМЕЧАНИЕ . features.isSingleForwardSlashBlockingEnabled .

  • 143740696 - Структура конфигурации quotas изменилась (см. Также заметки о выпуске для версии 3.0.9). Свойство quotas используется для настройки плагина квот. Изменение в структуре было внесено для улучшения ясности элементов конфигурации. Чтобы настроить плагин Quata, используйте следующую конфигурацию YAML. Обратите внимание, что свойство конфигурации называется quotas . Для получения подробной информации об отдельных свойствах конфигурации quotas см. Параметры конфигурации для квоты .

    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 - была добавлена ​​новая функция, которая позволяет использовать Redis в качестве магазина поддержки квот. Если useRedis верен, то используемый модуль Volos-quota-redis . Когда это правда, квота ограничена только тем экземплярами Microgateway, которые соединяются с Redis. Если False, модуль Volos-quota-apigee используется в качестве хранилища поддержки, а счетчик квоты является глобальным. Подробнее см. Параметры конфигурации для квоты . Например:
    edgemicro:
    ...
    quotas:
      useRedis: true
      redisHost: localhost
      redisPort: 6379
      redisDb: 1
  • 140574210 - время истечения срока действия по умолчанию для токенов, сгенерированных прокси edgemicro-auth прокси -аутом, было изменено с 108000 миллисекунд (1,8 минуты) на 1800 секунд (30 минут).
  • 143551282 - Чтобы поддержать Orgs SAML Orgs, команда edgemicro genkeys была обновлена, чтобы включить параметр ‑‑token . Этот параметр позволяет использовать токен OAuth для аутентификации вместо имени пользователя/пароля. Для получения подробной информации см. Generating Keys .

3.0.9

В пятницу, 11 октября, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий для отдельных компонентных проектов, связанных с Edge Microgateway 3.0.9. Обратите внимание, что, поскольку каждый компонент является отдельным проектом, номера выпуска могут не совпадать с основной версией продукта:

Microgateway основной конфигурация плагины Эджоут
3.0.9 3.0.7 3.0.7 3.0.10 3.0.7

Исправления и усовершенствования ошибок:

  • 141989374 - Для плагина квот была добавлена ​​новая функция «Fail Open». Когда эта функция включена, если возникает ошибка обработки квоты или если запрос «Применение квоты» к Edge не может обновить счетчики удаленных квот, квота будет обрабатываться на основе локальных счетчиков только до тех пор, пока не произойдет следующая успешная удаленная синхронизация квот. В обоих этих случаях в объекте запроса устанавливается флаг quota-failed-open .

    Чтобы включить функцию «открытия при сбое» квоты, установите следующую конфигурацию:

    quotas :
     failOpen : true

    Примечание. Кроме того, название объекта fail-open открытого объекта плагина OAuth было изменено на oauth-failed-open .

  • 142093764 - Изменение конфигурации было внесено в прокси edgemicro-auth , чтобы предотвратить переполнения квот. Изменение состоит в том, чтобы установить тип квоты в календарь . Чтобы использовать это улучшение, вы должны обновить свой edgemicro-auth до версии 3.0.7 или выше.
  • 142520568 - Была добавлена ​​новая функция, чтобы включить регистрацию идентификатора MP (процессор сообщений) в ответах квот. Чтобы использовать эту функцию, вы должны обновить свой прокси-сервер edgemicro-auth для версии 3.0.7 или выше и установить следующую конфигурацию:
    quotas:
      useDebugMpId: true

    Если установлено useDebugMpId , ответы о квотах от Edge будут содержать идентификатор MP и будут регистрироваться Edge Microgateway. Например:

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

3.0.8

В четверг, 26 сентября, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий для отдельных компонентных проектов, связанных с Edge Microgateway 3.0.8. Обратите внимание, что, поскольку каждый компонент является отдельным проектом, номера выпуска могут не совпадать с основной версией продукта:

Microgateway основной конфигурация плагины Эджоут
3.0.8 3.0.6 3.0.6 3.0.9 3.0.6

Исправления и усовершенствования ошибок:

  • 140025210 - была добавлена ​​новая функция «Fail Open». Эта функция позволяет обработке API продолжаться, если истекший токен JWT не может быть обновлен из-за ошибки подключения, которая предотвращает успешный вызов проверки ключа API для прокси-сервера edgemicro-auth .

    Эта функция позволяет вам установить льготный период, когда старый токен остается в кеше и повторно используется до тех пор, пока не истекает период благодати. Эта функция позволяет Edge Microgateway продолжать обработку запросов в случае временного сбоя соединения. Когда подключение возобновается, и успешный вызов проверки API -ключа проходит, новая JWT извлекается и заменяет старый JWT в кэше.

    Чтобы настроить новую функцию «Fail Open», сделайте следующее:

    1. Установите следующие свойства в файле конфигурации oauth Stanza в файле конфигурации Edge Microgateway:
      oauth:
        failOpen: true
        failopenGraceInterval: time_in_seconds
        cacheKey: true
        ...

      Например:

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

      В этом примере старый токен будет использоваться в течение 5 секунд, если его нельзя обновить из -за проблемы с подключением. Через 5 секунд будет возвращена ошибка аутентификации.

  • 141168968 - Было сделано обновление, чтобы включить correlation_id во все выходные данные плагина. Кроме того, уровни журналов для некоторых журналов были изменены на error по мере необходимости.
  • 140193349 - Обновление было сделано для прокси -сервера edgemicro-auth чтобы потребовать, чтобы ключ Edge Microgateway и секрет был проверен по каждому запросу Verify API. Edge Microgateway был обновлен, чтобы всегда отправлять ключ и секрет по каждому запросу API API. Это изменение не позволяет клиентам получить JWT только с ключом API.
  • 140090250 - Было сделано обновление для добавления диагностического журнала для обработки квот. С помощью этого изменения теперь можно коррелировать выходной сигнал для журнала Coto с остальными журналами Edge Microgateway.

3.0.7

В четверг, 12 сентября, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

Версии компонентов:

В следующей таблице перечислены номера версий для отдельных компонентных проектов, связанных с Edge Microgateway 3.0.7. Обратите внимание, что, поскольку каждый компонент является отдельным проектом, номера выпуска могут не совпадать с основной версией продукта:

Microgateway основной конфигурация плагины Эджоут
3.0.7 3.0.5 3.0.5 3.0.8 3.0.5

Исправления и усовершенствования ошибок:

  • 140075602 - Обновление было сделано в плагине OAuth, чтобы вернуть код состояния 5xx, где это необходимо. Ранее плагин возвращал только коды состояния 4xx во всех случаях не 200 лет. Теперь, для любого ответа сообщения, который не является статусом 200, точный код 4xx или 5xx будет возвращен в зависимости от ошибки.

    Эта функция отключена по умолчанию. Чтобы включить эту функцию, добавьте oauth.useUpstreamResponse: true Product в вашу конфигурацию Microgateway. Например:

    oauth:
      allowNoAuthorization: false
      allowInvalidAuthorization: false
      gracePeriod: 10
      useUpstreamResponse: true
  • 140090623 - В выпуске 3.0.6 было добавлено новое свойство конфигурации, quota.quotaUri . Установите это свойство конфигурации, если вы хотите управлять квотами через прокси edgemicro-auth , который развернут в вашей организации. Если это свойство не задано, конечной точкой квоты по умолчанию будет внутренняя конечная точка Edge Microgateway. Например:
    edge_config:
      quotaUri: https://%s-%s.apigee.net/edgemicro-auth

    В выпуске 3.0.7 edgemicro-auth был обновлен, чтобы принять эту новую конфигурацию. Чтобы использовать свойство quotaUri , вы должны перейти на последний прокси-прокси edgemicro-auth . Для получения подробной информации см. Обновление прокси Edgemicro-Auth .

  • 140470888 - В квот был добавлен заголовок авторизации для обеспечения аутентификации. Кроме того, прокси-сервер edgemicro-auth был изменен для удаления «организации» из идентификатора квоты. Поскольку конечная точка квоты находится в организации клиента, идентификатор квоты больше не нужен.
  • 140823165 - Следующее имя свойства:
    edgemicro:
        keepAliveTimeout

    был задокументирован неправильно в выпуске 3.0.6. Правильное название свойства:

    edgemicro:
        keep_alive_timeout
  • 139526406 - Была исправлена ​​ошибка, когда произошло неверное количество квот, если приложение разработчика имело несколько продуктов. Квота теперь правильно соблюдается для каждого продукта в приложении с несколькими продуктами. Комбинация «appname + productName» используется в качестве идентификатора квоты.

3.0.6

В четверг, 29 августа, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

  • 138633700 - Добавлено новое свойство конфигурации, keepAliveTimeout . Это свойство позволяет вам установить тайм -аут Edge Microgateway (в миллисекундах). (По умолчанию: 5000 миллисекунд)

    Например:

    edgemicro:
      keep_alive_timeout: 600
  • 140090623 - Добавлено новое свойство конфигурации, quotaUri . Установите это свойство конфигурации, если вы хотите управлять квотами через прокси edgemicro-auth , который развернут в вашей организации. Если это свойство не задано, конечной точкой квоты по умолчанию будет внутренняя конечная точка Edge Microgateway. Например:
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

    Чтобы использовать эту функцию, вы должны сначала развернуть последнюю версию edgemicro-auth Proxy в вашу организацию. Для получения подробной информации см. Обновление прокси Edgemicro-Auth .

  • 138722809 - Добавлено новое свойство конфигурации, stack_trace . Это свойство позволяет вам контролировать, появляются ли следы стеков в файлах журнала. Например:
    stack_trace: false

    Если stack_trace установлен на true , трассировка стека будет напечатана в журналах. Если он установлен на false , трассировка стека не будет напечатана в журналах.

3.0.5

В четверг, 15 августа, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

Ошибки исправлены
  • 139005279 - Проблема была исправлена, когда команда edgemicro status не вернула правильное количество рабочих процессов.
  • 138437710 - Проблема была исправлена ​​в классе EdicitCounter, который предотвратил написание надлежащего журнала.
Общие улучшения сообщений журнала
  • 139064652 - Добавлена ​​возможность добавлять уровни регистрации trace и debug для журналов событий и систем. На данный момент была добавлена ​​только возможность добавления этих уровней журнала. В настоящее время доступными уровнями журналов являются info , warn и error .
  • 139064616 - Вывод журнала был стандартизирован для всех операторов журнала консоли. Заявления о ведении журнала консоли теперь включают эти атрибуты:
    • Временная метка
    • Имя компонента
    • Идентификатор процесса
    • Сообщение журнала консоли
Улучшения сообщений клавиши JWT и секретного журнала
  • 138413755 - Улучшение клавиш JWT и секретные сообщения журнала для этих команд CLI: CERT, проверка, обновленияквм, токен, генки, RevokeKeys, RotateKey и Configure.
Тайм -аут и соединение отказались от улучшения сообщений об ошибке
  • 138413577 - Добавьте и улучшайте обработку ошибок для тайм -аутов на бэкэнд.
  • 138413303 - Добавьте и улучшайте обработку ошибок для тайм -аутов с откликом и розеткой.
  • 138414116 - Добавить и улучшить обработку ошибок для ошибок «подключение».

3.0.4

В четверг, 1 августа, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

  • 134445926 - Улучшения во внутренней аутентификации микрогейсов.
  • 137582169 - рассмотрел проблему, в которой начались нежелательные процессы. Дополнительные процессы заставили плагины перезагружать и использовали чрезмерную память. Edge Microgateway теперь сохраняет количество процессов в пределах ожидаемого предела.
  • 137768774 - Улучшения сообщений журнала:
    • Очищенные журналы транзакции (запрос).
    • Добавлено больше сообщений журнала, где это необходимо.
    • Перенодили сообщения журнала транзакции (запрос) из вывода консоли в соответствующий файл журнала.
    • Обновленные журналы консоли для использования централизованной функции журнала.
  • 138321133, 138320563 - Основополагающее внутреннее изменение в буфер квот для обеспечения будущих улучшений квот.

3.0.3

Во вторник, 23 июля, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

  • Усовершенствования журнала : существующие журналы времени выполнения используют новую функцию eventLog() , которая захватывает и регистрирует данные времени выполнения в постоянном формате. Информация о журнале включает в себя:
    • TimeStamp (ISO 8601: yyyy-mm-ddthh: mm: ss.sssz).
    • Уровень журнала (ошибка, предупреждение или информация).
    • Имя хоста - запрашивающее имя хоста из заголовка запроса.
    • Идентификатор процесса - если вы запускаете кластер процессов node.js, это идентификатор процесса, где произошло ведение журнала.
    • Название организации Apigee.
    • Название среды в организации.
    • API Proxy Name.
    • IP -адрес клиента.
    • ClientId.
    • Идентификатор корреляции (не установлен в настоящее время).
    • Edge Microgateway имя компонента.
    • Пользовательское сообщение - Некоторые объекты могут распечатать дополнительную информацию, которая передается в это свойство ошибки.
    • Метод запроса (если HTTP -запрос).
    • Код состояния ответа (если HTTP -запрос).
    • Сообщение об ошибке.
    • Код ошибки - если объект включает код ошибки, он напечатан в этом свойстве.
    • Время взято.
    • Операционная система конец линейного маркера.

    Новые значения свойства приводят к пустым кронштейнам, [] .

    В следующем примере показан формат журнала:

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

    (137770055)

  • Производительность : продукты API не были отфильтрованы на основе среды. Эта проблема была исправлена. (135038879)
  • Разное функциональное тестирование интеграции и улучшения качества кода.

3.0.2

В среду, 3 июля 2019 года, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

Качество кода - код был просмотрен на предмет качества, и были внесены изменения в код для соответствия стандартам качества, запрашиваемых пользователями. Мы обратились к ошибкам качества кода и предупреждениям, полученным из JSHINT . Некоторые фактические ошибки кода были идентифицированы и ремонтированы в результате. Все модули Microgateway Apigee Edge были проведены через этот процесс. См. См. 28 июня и 2 июля коммиты для microgateway-config , microgateway-core , microgateway-plugins и microgateway . Все модули с изменениями качества кода были протестированы с помощью внутренних инструментов, которые проверяют выполнение Edge Microgateway для вариантов использования клиентов.

3.0.1

В пятницу, 21 июня 2019 года, мы выпустили следующие исправления и усовершенствования для Edge Microgateway.

  • 134834551 - Измените поддерживаемые версии Node.js для Edge Microgateway
    (Node.js Поддерживаемые версии: 8 и 12; версии 7, 9 и 11 экспериментальны)
  • 134751883 - Edge Microgateway сбои при перезарядке под нагрузкой
  • 134518428 - Конечная точка продуктов для Edge Microgateway возвращает 5xx, если рисунок фильтра неверна
  • 135113408 - Работники должны перезапустить, если они неожиданно прекратятся
  • 134945852 - TokenCachesize не используется в плагине OAuth
  • 134947757 - Установите Cachettl в плагине OAuth
  • 135445171 - Расчет Graceperiod в OAuth неверен
  • Используйте модуль, предоставленное с установкой Edge Microgateway
  • 135367906 - Аудит безопасности

Версия 2.5.x

Новые функции и усовершенствования v.2.5.x

(Исправлено 2.5.38, 07/07/2019)

Неправильно отформатированные JWT могут привести к разбиту работников при использовании кеша токена. Исправлена ​​в модуле края микрогейвей-плугинса. (B/134672029)

(Добавлено 2.5.37) Добавьте опцию CLI edgemicro-cert -t .

Опция edgemicro cert -t позволяет вам указать токен OAuth для аутентификации API управления. Смотрите также управление сертификатами .

(Добавлено 2.5.35) Добавьте поддержку в Edge Microgateway отладки с использованием edgemicroctl .

Вы можете использовать флаг mgdebug с edgemicroctl . Смотрите также задачи интеграции Kubernetes .

(Добавлено 2.5.35) Включите сборку Windows для edgemicroctl .

(Добавлено 2.5.31) Новый Edgemicro-Auth/Token API

Был добавлен новый API Edgemicro-Auth/Token, который позволяет вам передавать клиент/секрет в качестве базового 64-кодируемого основного заголовка авторизации и Grant_type в качестве параметра формы. См. Получив токены носителя напрямую .

(Исправлена ​​2.5.31) Частная конфигурация не уважает токен.

Была решена проблема, когда настройка Edge Microgateway для использования токена доступа OAuth2 на краю для частного облака не работала должным образом (токен не был уважаемым).

Docker: Поддержка использования самоподтвержденных сертификатов

(Добавлено 2.5.29) Если вы используете авторитет сертификата (CA), который по умолчанию не доверяет Node.js, вы можете использовать параметр NODE_EXTRA_CA_CERTS при запуска контейнера Docker с Edge Microgateway. Для получения подробной информации см. Использование CA, которому не доверяют node.js.

Docker: поддержка TLS

(Добавлено 2.5.29) Edge Microgateway, работающий в контейнере Docker, теперь поддерживает TLS для входящих запросов на сервер Edge Microgateway (запросы на север) и для исходящих запросов от Edge Microgateway до целевого приложения (запросы на юг).

Следующие примеры подробно объясняют, как настроить эти конфигурации TLS:

В этих примерах вы увидите, как использовать точку крепления контейнера /opt/apigee/.edgemicro для загрузки сертификатов, которые затем упоминаются в файл конфигурации Microgateway.

Docker: Поддержка для прокси -запроса

(Добавлено 2.5.27) Если вы запускаете Edge Microgateway в контейнере Docker, вы можете использовать эти параметры для управления поведением прокси, когда Microgateway работает за брандмауэром:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

Для получения подробной информации см. Run Edge Micro как контейнер Docker .

Docker: обновленные инструкции плагина

(Добавлено 2.5.27) Если вы запускаете Edge Microgateway в контейнере Docker, теперь у вас есть два варианта развертывания плагинов. Один из вариантов, используя точку монтирования Docker, является новым. Другой вариант существовал ранее, в основном не изменился; Тем не менее, DockerFile был обновлен. Для получения подробной информации обратитесь к следующим ссылкам:

Новая поддержка токенов OAuth для команды обновления KVM

(Добавлено 2.5.27) Вы можете использовать токен OAuth с командой upgradekvm . Для получения подробной информации см. Обновление KVM .

Разделение API в Edge Analytics

(Добавлено 2.5.26) Новые флаги плагинов Analytics позволяют разделить определенный путь API, чтобы он появлялся в виде отдельного прокси на панелях Ange Analytics. Например, вы можете разделить API -интерфейсы проверки здоровья, чтобы не смутить их с реальными вызовами API. Для получения дополнительной информации см. За исключением путей из аналитики .

Настройка локального прокси

(Добавлено 2.5.25) С помощью локального прокси, вам не нужно вручную создавать прокси-сервер Microgateway на Apigee Edge. Вместо этого Microgateway будет использовать базовый путь локального прокси. Для получения дополнительной информации см. Использование локального прокси -режима .

Используя автономный режим

(Добавлено 2.5.25) Вы можете запустить Edge Microgateway полностью отключенным от любой зависимости от краев Apigee. Этот сценарий, называемый автономным режимом, позволяет запустить и проверять Microgateway без подключения к Интернету. См. Запуск Edge Microgateway в автономном режиме .

Отмена ключей

(Добавлено 2.5.19) была добавлена ​​новая команда CLI, которая отменяет ключевые и секретные учетные данные для конфигурации Edge Microgateway.

edgemicro revokekeys -o [organization] -e [environment] -u [username] -k [key] -s [secret]
Для получения дополнительной информации см. Отмена ключей .

Поддержка Докера

(Добавлено 2.5.19) Теперь вы можете загрузить последнее выпуск Edge Microgateway в виде изображения Docker :

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

Поддержка Кубернетеса

(Добавлено 2.5.19) Вы можете развернуть Edge Microgateway в качестве услуги или в качестве шлюза коляска перед услугами, развернутыми в кластере Kubernetes . См.: Интегрируйте Edge Microgateway с обзором Kubernetes .

Поддержка опции TCP Nodelay

(Добавлено 2.5.16) Новая настройка конфигурации, nodelay , была добавлена ​​в краевую микро -конфигурацию.

По умолчанию TCP-соединения используют алгоритм Нэгла для буферизации данных перед их отправкой. Установка nodelay в true отключает это поведение (данные будут немедленно отправляться каждый раз, когда вызывается socket.write() ). Дополнительные сведения см. также в документации Node.js.

Чтобы включить nodelay , отредактируйте файл конфигурации Edge Micro следующим образом:

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

Новые варианты CLI для вечного мониторинга

(Добавлено 2.5.12) Новые параметры были добавлены в команду edgemicro forever . Эти параметры позволяют вам указать местоположение файла forever.json и позволить вам либо запустить, либо остановить фоновый процесс Forever. Смотрите также навсегда мониторинг

Параметр Описание
-f, --file Определяет местоположение файла forever.json .
-a, --action Либо start , либо stop . По умолчанию начало.

Примеры:

Начать навсегда:

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

Чтобы остановиться навсегда:

edgemicro forever -a stop

Jwt Key rowation

Была добавлена ​​новая функция, которая позволяет поворачивать пары публичных/частных ключей, используемые для генерации токенов JWT, используемых для безопасности OAuth On Edge Microgateway. Смотрите вращающиеся ключи JWT .

Фильтрация загруженных прокси API

По умолчанию Edge Microgateway загружает все прокси-серверы в вашей организации Edge, имена которых начинаются с префикса «edgemicro_». Вы можете изменить это значение по умолчанию, чтобы загружать прокси, имена которых соответствуют шаблону. Смотрите фильтрацию загруженных прокси .

Указание продуктов без API-прокси

В Apigee Edge вы можете создать продукт API, который не содержит прокси-серверов API. Эта конфигурация продукта позволяет ключу API, связанному с этим продуктом, работать с любым прокси-сервером, развернутым в вашей организации. Начиная с версии 2.5.4 Edge Microgateway поддерживает эту конфигурацию продукта.

Поддержка навсегда мониторинга

Edge Microgateway имеет файл forever.json , который можно настроить, чтобы контролировать, сколько раз и с какими интервалами следует перезапускать Edge Microgateway. Этот файл настраивает службу, называемую Forever-Monitor, которая управляет программно навсегда. Смотрите навсегда мониторинг .

Центральное управление файлом микро -конфигурации Edge

Если вы используете несколько экземпляров Edge Microgateway, возможно, вам захочется управлять их конфигурациями из одного места. Это можно сделать, указав конечную точку HTTP, откуда Edge Micro сможет загрузить файл конфигурации. См. Указание конечной точки файла конфигурации .

Поддержка опции Forever CLI

(Добавлено 2.5.8) Используйте команду edgemicro forever [package.json] чтобы указать местоположение файла forever.json . Перед добавлением этой команды файл конфигурации должен был находиться в корневом каталоге Edge Microgateway.

Например:

edgemicro forever ~/mydir/forever.json

Добавление параметра Configurl для перезагрузки

(Добавлено 2.5.8) Теперь вы можете использовать опцию --configUrl или -u с командой edgemicro reload .

Период ГРЕССИЯ ДЛЯ ДЕЙСТВИЯ ВРЕМЕНИ ВРЕМЕНИ

(Добавлено 2.5.7) Атрибут Graceperiod в конфигурации OAuth помогает предотвратить ошибки, вызванные небольшими несоответствиями между вашими системными часами и не до (NBF) или выпущенным в (IAT), указанные в токене разрешения JWT. Установите этот атрибут на количество секунд, чтобы обеспечить такие расхождения. Смотрите атрибуты Oauth .

(Добавлено 2.5.7) Атрибут Graceperiod в конфигурации OAuth помогает предотвратить ошибки, вызванные небольшими несоответствиями между вашими системными часами и не до (NBF) или выпущенным в (IAT), указанные в токене разрешения JWT. Установите этот атрибут на количество секунд, чтобы обеспечить такие расхождения. Смотрите атрибуты Oauth .

Ошибки исправлены v2.5.x

  • (Выпуск № 236) Исправьте опечатку при очистке кеша.
  • (Выпуск № 234) Перезагрузить сбои для Edge Microgateway 2.5.35.
  • (Выпуск № 135) Неверная ссылка на виртуальный хост "Secure" при использовании параметра -v . Это исправление изменяет прокси-сервер Edgemicro-Auth перед развертыванием, чтобы гарантировать, что виртуальные хосты точно соответствуют тому, что указано в флаге «-v». Кроме того, вы можете указать любое количество и любое имя для виртуального хоста (больше не ограничивается по умолчанию и безопасным).
  • (Выпуск № 141) Команда Edgemicro Reload не поддерживает опцию файла конфигурации -c . Эта проблема была исправлена.
  • (Выпуск № 142) Edge Microgateway жалуется на устаревшее криптографию во время установки. Эта проблема была исправлена.
  • (Выпуск № 145) Квота не работает с Edge Microgateway. Эта проблема была исправлена.
  • (Проблема сообщества Apigee: https://community.apigee.com/questions/33149/emg-jwt-token-validated-against-both-api-proxies-a.html#answer-33336 ). и ресурс URI в OAuth. Эта проблема была исправлена.
  • (Проблема сообщества Apigee: https://community.apigee.com/questions/47846/microgateway-not-working-with-oauth.html ) Microgateway не работает с Oauth. Эта проблема была исправлена.
  • Исправьте Pidpath на Windows.
  • (Выпуск № 157) Проблема, вызванная следующим сообщением об ошибке, была исправлена: ReferenceError: deployProxyWithPassword не определен.
  • (Выпуск № 169) Обновление Node.js Depertiances (NPM Audit)
  • edgemicro-auth Proxy теперь использует политики Edge JWT. Прокси больше не зависит от node.js для обеспечения поддержки JWT.

Версия 2.4.x

Новые функции и усовершенствования v.2.4.x

1. Установите пользовательский псевдоним для прокси Edgemicro-Auth (PR 116)

Вы можете изменить базовую септу для по умолчанию для прокси Edgemicro-Auth . По умолчанию базовый путь — /edgemicro-auth . Чтобы изменить его, используйте флаг -x в команде Edgemicro configure .

Пример:

edgemicro configure -x /mypath …


2. Поддержка подстановочных знаков для базовых путей (PR 77)

Вы можете использовать один или несколько « * » подстановки на базовом пути прокси -сервера Edgemicro_ * . Например, базовый путь /team/*/members позволяет клиентам вызывать https://[host]/team/blue/members и https://[host]/team/green/members без необходимости создавать новые API-прокси для поддержки новых команд. Обратите внимание, что /**/ не поддерживается.

Важно: Apigee НЕ поддерживает использование подстановочного знака «*» в качестве первого элемента базового пути. Например, НЕ поддерживается: /*/ search.

3. Пользовательский путь конфигурации, добавленный в CLI для конфигурации частного облака (PR 99)

По умолчанию файл конфигурации Microgateway находится в ./config/config.yaml . В командах init, настройки и запуска вы теперь можете указать пользовательский путь конфигурации в командной строке, используя флаги -c или - -configdir . Исправлена ​​проблема, в которой пользовательский каталог конфигурации для инсталляций частного облака не был признан.

Пример:

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

4. Уважение *_proxy переменные (PR 61)

Если Edge Microgateway установлен за брандмауэром и не может общаться с Apigee Edge в общедоступном облаке, есть два варианта для рассмотрения:

Вариант 1:

Первый вариант — установить для параметра Edgemicro: proxy_tunnel значение true в файле конфигурации микрошлюза:

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

Если proxy_tunnel имеет значение true , Edge Microgateway использует метод HTTP CONNECT для туннелирования HTTP-запросов через одно TCP-соединение. (То же самое верно, если переменные среды для настройки прокси-сервера включены TLS).

Вариант 2:

Второй вариант — указать прокси и установить для proxy_tunnel значение false в файле конфигурации микрошлюза. Например:

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

В этом случае вы можете установить следующие переменные для управления хостами для каждого HTTP-прокси, который вы хотите использовать, или для того, какие хосты не должны обрабатывать прокси-серверы Edge Microgateway: HTTP_PROXY , HTTPS_PROXY и NO_PROXY . Вы можете установить NO_PROXY в виде списка доменов, разделенных запятыми, для которых Edge Microgateway не должен использовать прокси. Например:

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

Дополнительную информацию об этих переменных см.:

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


5. Установите пользовательский тайм -аут для целевых запросов (PR 57)

Вы можете установить пользовательский тайм -аут для целевых запросов с этой конфигурацией:

edgemicro:
    request_timeout: 10

Таймаут задается в секундах. Если происходит тайм-аут, Edge Microgateway отвечает кодом состояния 504.

6. Уважайте пользовательские сообщения о состоянии HTTP в целевом ответе (PR 53)

Edge Microgateway уважает пользовательские сообщения о состоянии HTTP, установленные на целевом ответе. В предыдущих выпусках сообщения о состоянии, отправленные из цели, были переопределены с помощью дефолтов Node.js.

7. Заголовок X-Forwarded-For может установить Client_IP для аналитики

Если присутствует, заголовок X-Forwarded-For установит переменную Client_IP , которая сообщается в Edge Analytics. This feature lets you know the IP of the client that sent a request to Edge Microgateway.

8. OAuth plugin changes

The OAuth plugin supports API Key verification and OAuth access token verification. Before this change, the plugin accepted either form of security. With this change, you can allow only one of those security models (while maintaining backward compatibility).

The OAuth plugins adds two new flags:

  • allowOAuthOnly -- If set to true , every API must carry an Authorization header with a Bearer Access Token.

  • allowAPIKeyOnly -- If set to true , every API must carry an x-api-key header (or a custom location) with an API Key.

You set these flags in the Edge Microgateway configuration file like this:

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

9. Improved the edgemicro-auth proxy (PR 40)

Improvements have been made to the edgemicro-auth proxy. До этих изменений прокси-сервер хранил ключи в Edge Secure Store, зашифрованном хранилище. Теперь прокси хранит ключи в зашифрованной карте «ключ-значение» Edge (KVM).

10. Rewriting default target URL in a plugin (PR 74)

Вы также можете переопределить порт целевой конечной точки и выбрать между HTTP и HTTPS. Измените эти переменные в коде вашего плагина: req.targetPort и req.targetSecure . Чтобы выбрать HTTPS, установите для req.targetSecure значение true ; для HTTP установите значение false . Если вы установили для req.targetSecure значение true, дополнительную информацию см. в этой теме обсуждения .

11. Initial support for OAuth token authentication (PR 125)

You can configure Edge Microgateway to use an OAuth token for authentication instead of username/password. To use an OAuth token, use the following parameter on the edgemicro configure command:

-t, --token <token>

Например:

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

Bugs fixed v2.4.3

  • Fixed an issue where a paid org was required to properly run the edgemicro-auth proxy. Now, you can use Edge Microgateway with trial orgs as well. (PR 5)
  • Fixed an issue where the stream was not finished processing data, but end handlers were executing anyway. This caused a partial response to be sent. (PR 71)
  • Fixed an issue where a custom config directory for Private Cloud installations was not recognized. (PR 110)
  • Fixed an issue with bi-directional SSL between the client and Edge Microgateway. (PR 70)
  • Fixed an issue where a trailing slash was required on the proxy basepath for API key verification to workk properly. Now, a trailing slash is not needed at the end of the basepath. (PR 48)

Version 2.3.5

New features and enhancements v.2.3.5

Proxy filtering

Вы можете отфильтровать, какие прокси-серверы с поддержкой микрошлюза будет обрабатывать экземпляр Edge Microgateway. При запуске Edge Microgateway он загружает все прокси-серверы с поддержкой микрошлюза в организации, с которой он связан. Используйте следующую конфигурацию, чтобы ограничить количество прокси-серверов, которые будет обрабатывать микрошлюз. Например, эта конфигурация ограничивает количество прокси-серверов, которые микрошлюз будет обрабатывать, до трех: edgemicro_proxy-1 , edgemicro_proxy-2 и edgemicro_proxy-3 :

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

Analytics data masking

A new configuration lets you prevent request path information from showing up in Edge analytics. Добавьте следующее в конфигурацию микрошлюза, чтобы замаскировать URI запроса и/или путь запроса. Обратите внимание, что URI состоит из имени хоста и пути запроса.

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

Version 2.3.3

New features and enhancements v.2.3.3

Following are the new features and enhancements for this release.

Disable automatic change polling

You can turn off automatic change polling by setting this attribute in the microgateway config:

disabled_config_poll_interval: true

By default, periodic polling picks up any changes made on Edge (changes to products, microgateway-aware proxies, etc) as well as changes made to the local config file. The default polling interval is 600 seconds (five minutes).

Перезапись целевых URL-адресов в плагинах

You can override the default target URL dynamically in a plugin by modifying these variables in your plugin code: req.targetHostname and req.targetPath .

New plugin function signature

A new plugin function signature has been added that provides the target response as an argument. This addition makes it easier for plugins to access the target response.

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

Simplified default logging output

By default, the logging service now omits the JSON of downloaded proxies, products, and JWT. You can change to default to output these objects by setting DEBUG=* when you start Edge Microgateway. Например:

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

Custom config path added to CLI

By default, the microgateway configuration file is in ./config/config.yaml. On the init, configure, and start commands, you can now specify a custom config path on the command line. Например:

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

Bugs fixed v2.3.3

  • A memory leak was fixed that occurred during large request/responses.
  • Plugin execution order was fixed. It now behaves the way it is explained in the documentation.
  • The plugin accumulate-request plugin no longer hangs for GET requests.
  • An issue was fixed in the accumulate-response plugin where a lack of response body caused errors.

Release 2.3.1

Installation note

Some previous versions of Edge Microgateway let you install the software by downloading a ZIP file. These ZIP files are no longer supported. To install Edge Microgateway, you must use:

npm install -g edgemicro

Refer to the installation topic for more details.

New features and enhancements v.2.3.1

Following are the new features and enhancements for this release.

Filter proxies

A new configuration lets you filter which proxies that Edge Microgateway will load upon startup. Previously, the microgateway loaded all microgateway-aware proxies (proxies named edgemicro_*) pulled from the Edge organization/environment that you specified in the edgemicro configure command. This new feature lets you filter this list of proxies so that Edge Microgateway only loads the ones you specify. Simply add the proxies element to the microgateway config file like this:

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

For example, let's say you have 50 edgemicro_* proxies in your Edge org/env, including ones named edgemicro_foo and edgemicro_bar . You can tell the microgateway to use only these two proxies like this:

edge micro:
proxies:
    - edgemicro_foo
    - edgemicro_bar

Upon startup, the microgateway will only be able to call the specified proxies. Any attempts to call other microgateway-aware proxies downloaded from the Edge organization/environment will result in an error.

Set target request headers in plugins

There are two basic patterns to consider if you want to add or modify target request headers: one where the incoming request contains data (as in a POST request) and one where it does not (as in a simple GET request).

Let's consider a case where the incoming request contains data, and you want to set request headers on the target request. In previous versions of Edge Microgateway, it was not possible to set target headers reliably in this case.

The key to this pattern is to first accumulate all incoming data from the client. Then, in the onend_request() function, use the new function request.setOverrideHeader(name, value) to customize the headers.

Here is sample plugin code showing how to do this. The headers set in onend_request are sent to the target:

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);
    }

  };

}

If the request does not include data, then you can set target headers in the onrequest() handler. This pattern is not new -- it has been documented previously and has been used in the sample plugins provided with 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();
    }

Zero-downtime reload feature

After making a configuration change to Edge Microgateway, you can load the configuration without dropping any messages. With this change, Edge Microgateway always starts in cluster mode, and he --cluster option has been removed from the edgemicro start command.

In addition, three new CLI commands have been added. You must run these commands from the same directory where the edgemicro start command was executed:

  • edgemicro status - Checks to see if the Edge Microgateway is running or not.
  • edgemicro stop - Stops the Edge Microgateway cluster.
  • edgemicro reload - Reloads the Edge Microgateway configuration with no downtime.

Automatic config reload with zero downtime

Edge Microgateway loads a new configuration periodically and executes a reload if anything changed. Опрос фиксирует любые изменения, внесенные в Edge (изменения в продуктах, прокси-серверах с поддержкой микрошлюзов и т. д.), а также изменения, внесенные в локальный файл конфигурации. The default polling interval is 600 seconds (five minutes). You can change the default in the microgateway config file as follows:

edgemicro:
    config_change_poll_interval: [seconds]

Added version information to CLI

A --version flag was added to the CLI. To get the current version of Edge Microgateway, use:

edgemicro --version

New Edge Microgateway server SSL options

Edge Microgateway now supports the following server SSL options in addition to key and cert :

Вариант Описание
pfx Путь к файлу pfx , содержащему закрытый ключ, сертификат и сертификаты CA клиента в формате PFX.
passphrase Строка, содержащая кодовую фразу для закрытого ключа или PFX.
ca Путь к файлу, содержащему список доверенных сертификатов в формате PEM.
ciphers Строка, описывающая используемые шифры, разделенная знаком ":".
rejectUnauthorized Если это правда, сертификат сервера проверяется по списку предоставленных центров сертификации. Если проверка не удалась, возвращается ошибка.
secureProtocol Используемый метод SSL. Например, SSLv3_method для принудительного использования SSL версии 3.
servername Имя сервера для расширения TLS SNI (индикация имени сервера).

Send log files to stdout

You can send log data to standard output with a new configuration setting:

edgemicro:
  logging:
    to_console: true  

See Managing log files .

Version 2.1.2

Following are the new features and enhancements for this release.

Allow custom API endpoint for configuration

There are new configurable endpoints for the authorization proxy that support the use of a custom auth service. These endpoints are:

  • edgeconfig:verify_api_key_url
  • edgeconfig:products

For details, see Using a custom auth service .

Version 2.1.1

Following are the new features and enhancements for this release.

Deploy auth proxy cross-platform compatible

An enhancement was made so that the command used to deploy the Edge Microgateway authorization proxy to Edge is compatible on Windows systems.

Версия 2.1.0

New features and enhancements v.21.0

Following are the new features and enhancements:

Specify client SSL/TLS options

You can specify client options for SSL/TSL connections to targets using a new set of config options. See Using client SSL/TSL options .

Version 2.0.11

Installation note v2.0.11

Some previous versions of Edge Microgateway let you install the software by downloading a ZIP file. These ZIP files are no longer supported. To install Edge Microgateway, you must use:

npm install -g edgemicro

Refer to the installation topic for more details.

New features and enhancements v.2.0.11

Following are the new features and enhancements:

Specify a port on startup

Команда start позволяет указать номер порта, чтобы переопределить порт, указанный в файле конфигурации. Вы также можете указать номер порта, используя переменную среды PORT. See start command for details.

Optionally preserve auth headers

A new configuration setting, keepAuthHeader , lets you preserve the Authorization header sent in the request. If set to true, the Auth header is passed on to the target. See oauth attributes .

Ability to use a custom authorization service

If you want to use your own custom service to handle authentication, change the authUri value in the Edge Microgateway config file to point to your service. For details, see Using a custom auth service .

Version 2.0.4

Edge Microgateway v.2.0.4 was released on May 25, 2016.

New features and enhancements v2.0.4

Ниже приведены новые функции и улучшения в этом выпуске.

Support for resource paths in products

Edge Microgateway now supports resource paths in products. Resource paths let you restrict access to APIs based on the proxy path suffix. For details on creating products and configuring resource paths, see Create API products .

Support for npm global install

You can now install Edge Microgateway using the npm -g (global) option. For details on this option refer to the npm documentation .

Version 2.0.0

Edge Microgateway v2.0.0 was released on April 18, 2016.

New features and enhancements v.2.0.0

Ниже приведены новые функции и улучшения в этом выпуске.

Single process server

Edge Microgateway is now a single process server. It no longer uses a two process model where one process (previously known as the "agent") launches Edge Microgateway, the second process. The new architecture makes automation and containerization easier.

Namespaced configuration files

Configuration files now are namespaced using organization and environment so that multiple Microgateway instances can run on the same host. You can find the config files in ~/.edgemicro after you run the Edge Microgateway config command.

New environment variables

There are now 4 environment variables: EDGEMICRO_ORG, EDGEMICRO_ENV, EDGEMICRO_KEY, EDGEMICRO_SECRET. If you set these variables on your system, you do not have to specify their values when you use the Command-Line Interface (CLI) to configure and start Edge Microgateway.

Cached configuration

Edge Microgateway uses a cached configuration file if it restarts with no connection to Apigee Edge.

Cluster mode

There are now options to start Edge Microgateway in cluster mode. Cluster mode allows you to take advantage of multi-core systems. The microgateway employs the Node.js cluster module for this feature. For details, see the Node.js documentation.

Bugs fixed v2.0.0

Plugin event lifecycle now properly handles async code that contains code with a new callback.

Version 1.1.2

Edge Microgateway v. 1.1.2 was released on March 14, 2016.

New features and enhancements v.1.1.2

Ниже приведены новые функции и улучшения в этом выпуске.

Performance Improvement

Edge Microgateway now uses the Node.js HTTP agent properly for better connection pooling. This enhancement improves performance and overall stability under high load.

Remote debugger support

You can configure Edge Microgateway to run with a remote debugger, like node-inspector .

New config file location

When you configure Edge Microgateway, the agent/config/default.yaml file is now copied to ~./edgemicro/config.yaml .

Log file rotatio n

A new config attribute lets you specify a rotation interval for Edge Microgateway logs.

Bugs fixed v1.1.2

The following bugs are fixed in v. 1.1.2.

Описание
Java callout for edgemicro-internal proxy used with on-prem Edge now uses right MGMT server.
Remove typescript depenencies from the agent.
Fix CLI bug when using lean deployment option.
Fix cert logic dependency reference.