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

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

Версия 3.3.х

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

3.3.4

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

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

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

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

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

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

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

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

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

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 устанавливается.

    Чтобы включить функцию квоты «Fail 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 ID и будут регистрироваться 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_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_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]
Для получения дополнительной информации см. Отмена ключей .

Поддержка Docker

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

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

Поддержка Kubernetes

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

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

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

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

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

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

Если вы запускаете несколько экземпляров 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 .

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

(Added 2.5.7) A gracePeriod attribute in OAuth configuration helps prevent errors caused by slight discrepancies between your system clock and the Not Before (nbf) or Issued At (iat) times specified in the JWT authorization token. Set this attribute to the number of seconds to allow for such discrepancies. See OAuth attributes .

(Added 2.5.7) A gracePeriod attribute in OAuth configuration helps prevent errors caused by slight discrepancies between your system clock and the Not Before (nbf) or Issued At (iat) times specified in the JWT authorization token. Set this attribute to the number of seconds to allow for such discrepancies. See OAuth attributes .

Bugs fixed v2.5.x

  • (Issue #236) Fix typo in clearing the cache.
  • (Issue #234) Reload crashes for Edge Microgateway 2.5.35.
  • (Issue #135) Invalid virtual host reference "secure" error when using the -v option. This fix modifies the edgemicro-auth proxy before deployment to ensure the virtual hosts match exactly what is specified in the "-v" flag. In addition, you can specify any number of and any name for the virtual host (no longer restricted to default and secure).
  • (Issue #141) The edgemicro reload command does not support the configuration file option -c . This issue has been fixed.
  • (Issue #142) Edge Microgateway complains about deprecated crypto at install time. This issue has been fixed.
  • (Issue #145) Quota not working with Edge Microgateway. This issue has been fixed.
  • (Apigee Community issue: https://community.apigee.com/questions/33149/emg-jwt-token-validated-against-both-api-proxies-a.html#answer-33336 ) JWT token validated against both API Proxies and Resource URI in OAUTH. This issue has been fixed.
  • (Apigee Community issue: https://community.apigee.com/questions/47846/microgateway-not-working-with-oauth.html ) Microgateway not working with OAuth. This issue has been fixed.
  • Fix pidPath on Windows.
  • (Issue #157) Problem that caused the following error message has been fixed: ReferenceError: deployProxyWithPassword is not defined.
  • (Issue #169) Update Node.js dependencies (npm audit)
  • The edgemicro-auth proxy now uses the Edge JWT policies. The proxy no longer depends on Node.js to provide JWT support.

Version 2.4.x

New features and enhancements v.2.4.x

1. Set a custom alias for the edgemicro-auth proxy (PR 116)

You can change the default basepath for the edgemicro-auth proxy. By default, the basepath is /edgemicro-auth . To change it, use the -x flag on the edgemicro configure command.

Пример:

edgemicro configure -x /mypath …


2. Wildcard support for base paths (PR 77)

You can use one or more " * " wildcards in the base path of an edgemicro_* proxy. For example, a base path of /team/*/members allows clients to call https://[host]/team/blue/members and https://[host]/team/green/members without you needing to create new API proxies to support new teams. Note that /**/ is not supported.

Important: Apigee does NOT support using a wildcard "*" as the first element of a base path. For example, this is NOT supported: /*/ search.

3. Custom config path added to CLI for Private Cloud configuration (PR 99)

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 using the -c or --configDir flags. Fixed an issue where a custom config directory for Private Cloud installations was not recognized.

Пример:

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

4. Respect *_PROXY variables (PR 61)

If Edge Microgateway is installed behind a firewall and is not able to communicate with Apigee Edge in the public cloud, there are two options to consider:

Option 1:

The first option is to set the edgemicro: proxy_tunnel option to true in the microgateway config file:

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

When proxy_tunnel is true , Edge Microgateway uses the HTTP CONNECT method to tunnel HTTP requests over a single TCP connection. (The same is true if the environment variables for configuring the proxy are TLS enabled).

Option 2:

The second option is to specify a proxy and set proxy_tunnel to false in the microgateway config file. Например:

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

In this case, you can set the following variables to control the hosts for each HTTP proxy that you wish to use, or which hosts should not handle Edge Microgateway proxies: HTTP_PROXY , HTTPS_PROXY , and NO_PROXY . You can set NO_PROXY as a comma delimited list of domains that Edge Microgateway should not proxy to. Например:

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

For more information on these variables, see:

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


5. Set a custom timeout for target requests (PR 57)

You can set a custom timeout for target requests with this configuration:

edgemicro:
    request_timeout: 10

The timeout is set in seconds. If a timeout occurs, Edge Microgateway responds with a 504 status code.

6. Respect custom HTTP status messages on the target response (PR 53)

Edge Microgateway respects custom HTTP status messages set on the target response. In previous releases, status messages sent from the target were overridden with Node.js defaults.

7. The X-Forwarded-For header can set the client_ip for analytics

If present, the X-Forwarded-For header will set the client_ip variable that is reported in 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. Before these changes, the proxy stored keys in the Edge Secure Store, an encrypted vault. Now, the proxy stores keys in Edge's encrypted key-value map (KVM).

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

You can also override the target endpoint port and choose between HTTP and HTTPS. Modify these variables in your plugin code: req.targetPort and req.targetSecure . To choose HTTPS, set req.targetSecure to true ; for HTTP, set it to false . If you set req.targetSecure to true, see this discussion thread for more information.

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

You can filter which microgateway-aware proxies an Edge Microgateway instance will process. When Edge Microgateway starts, it downloads all of the microgateway-aware proxies in the organization it's associated with. Use the following configuration to limit which proxies the microgateway will process. For example, this configuration limits the proxies the microgateway will process to three: edgemicro_proxy-1 , edgemicro_proxy-2 , and 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. Add the following to the microgateway configuration to mask the request URI and/or request path. Note that the URI consists of the hostname and path parts of the request.

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).

Rewriting target URLs in plugins

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. The 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). 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 Path to a pfx file containing the private key, certificate, and CA certs of the client in PFX format.
passphrase A string containing the passphrase for the private key or PFX.
ca Path to a file containing a list of trusted certificates in PEM format.
ciphers A string describing the ciphers to use separated by a ":".
rejectUnauthorized If true, the server certificate is verified against the list of supplied CAs. If verification fails, an error is returned.
secureProtocol The SSL method to use. For example, SSLv3_method to force SSL to version 3.
servername The server name for the SNI (Server Name Indication) TLS extension.

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.

Version 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

The start command lets you specify a port number to override the port specified in the configuration file. You can also specify a port number using the PORT environment variable. 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

Following are the new features and enhancements in this release.

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

Following are the new features and enhancements in this release.

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

Following are the new features and enhancements in this release.

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.