یادداشت های انتشار Edge Microgateway

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

نسخه ۳.۳.x

رفع اشکالات و بهبودها نسخه ۳.۳.x

۳.۳.۷

در ۱۷ جولای ۲۰۲۵، ما اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۱۹۱۶۱۳۱۰۸ ویژگی

Edge Microgateway (EMG) برای پشتیبانی از الگوهای URL wildcard در پیکربندی excludeUrls بهبود یافته است. این بهبود، محدودیت قبلی را که در آن ویژگی executeURL به URL های استاتیک محدود شده بود و از الگوهای URL یا پارامترهای پرس و جو در درخواست های GET پشتیبانی نمی‌کرد، برطرف کرد.

این قابلیت به‌روزرسانی‌شده، امکان حذف مشروط افزونه‌هایی را که بر اساس URLهای پویا یا منطبق با الگو عمل می‌کنند، فراهم می‌کرد. این اصلاحیه با نسخه‌های قبلی سازگار بود و تضمین می‌کرد که پیکربندی‌های URL استاتیک موجود بدون نیاز به تغییر، کاملاً کاربردی باقی بمانند.

برای مثال،

edgemicro:
  plugins:
    excludeUrls: '/hello,/proxy_one/*' # global exclude urls
    sequence:
      -oauth
      -json2xml
      -quota
      -json2xml:
          excludeUrls: '/hello/xml/*'  # plugin level exclude urls
۱۳۵۲۷۶۱۱۰ ویژگی

داده‌های تحلیلی Edge Microgateway (EMG) شامل gateway_flow_id بود. پیش از این، این فیلد حذف شده بود که مانع از شناسایی منحصر به فرد و همبستگی رویدادهای تحلیلی با اجرای APIهای خاص می‌شد.

EMG به‌روزرسانی شد تا به طور خودکار هر رکورد تحلیلی را با یک UUID منحصر به فرد برای gateway_flow_id پر کند. این فیلد به طور پیش‌فرض به یک جزء ضروری از تمام payloadهای تحلیلی تبدیل شد و به طور قابل توجهی قابلیت ردیابی داده‌ها و ثبات گزارش‌دهی را بهبود بخشید.

۴۲۲۶۹۶۲۵۷ اشکال

با حل یک مشکل بحرانی از کار افتادن سیستم، پایداری سیستم به طور قابل توجهی افزایش یافت.

این اصلاحیه شامل شناسایی و اصلاح یک پیکربندی نادرست در یک ماژول داخلی بود که قبلاً باعث ایجاد یک حلقه فرآیند تکراری و در نتیجه اضافه بار سیستم شده بود. این اصلاح هدفمند، حلقه را از بین برد و در نتیجه سیستمی قوی‌تر و قابل اعتمادتر ایجاد کرد.

مشکلات امنیتی برطرف شد

۳.۳.۶

در ۱۶ آوریل ۲۰۲۵، ما اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.3.6 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۳.۶ ۳.۳.۶ ۳.۳.۶ ۳.۳.۶ ۳.۲.۲

مشکلات امنیتی برطرف شد

  • CVE-2025-27789
  • CVE-2024-21538
  • CVE-2024-12133

۳.۳.۵

در روز جمعه، 20 دسامبر 2024، اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.3.5 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۳.۵ ۳.۳.۵ ۳.۳.۵ ۳.۳.۵ ۳.۲.۲

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۳۸۳۰۲۴۵۷۸ ویژگی

ما پشتیبانی از Node.js نسخه ۲۲ را اضافه کردیم و پشتیبانی از نسخه ۱۶ را حذف کردیم. اگر از Node.js نسخه ۱۸ استفاده می‌کنید، Edge Microgateway هنگام راه‌اندازی پیام خطای زیر را چاپ می‌کند:

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

اگر از نسخه‌های قدیمی‌تر Node.js استفاده می‌کنید، این پیام خطا را مشاهده خواهید کرد:

You are using a version of NodeJS that is not supported

مشکلات امنیتی برطرف شد

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

۳.۳.۴

در ۱۸ سپتامبر ۲۰۲۴، ما اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.3.4 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۳.۴ ۳.۳.۴ ۳.۳.۴ ۳.۳.۴ ۳.۲.۲

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۶۷۵۹۸۷۷۵۱ اشکال

مشکلی که باعث می‌شد Edge Microgateway آدرس‌های IP کلاینت را ثبت نکند، برطرف شد.

مشکلات امنیتی برطرف شد

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

۳.۳.۳

در ۲۵ آوریل ۲۰۲۴، ما اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.3.3 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۳.۳ ۳.۳.۳ ۳.۳.۳ ۳.۳.۳ ۳.۲.۲

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۳۱۵۹۳۹۲۱۸ حذف شد

افزونه‌ی کلاینت Eureka از Edge Microgateway حذف شد. حذف این ویژگی تاثیری بر عملکرد اصلی Edge Microgateway یا بازنویسی URLهای هدف ندارد. برای جزئیات بیشتر، به «بازنویسی URLهای هدف در افزونه‌ها» مراجعه کنید.

۲۸۳۹۴۷۰۵۳ حذف شد

پشتیبانی از 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

۳.۳.۲

در ۱۸ آگوست ۲۰۲۳، ما اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.3.2 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۳.۲ ۳.۳.۲ ۳.۳.۲ ۳.۳.۲ ۳.۲.۲

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۲۹۶۱۸۷۶۷۹ ویژگی

نسخه‌های پشتیبانی‌شده‌ی Node.js عبارتند از: ۱۶، ۱۸ و ۲۰. از نسخه ۳.۳.۲، دستورات خط فرمان Edge Microgateway فقط روی نسخه‌های پشتیبانی‌شده کار می‌کنند. اجرای دستورات خط فرمان روی نسخه‌های پشتیبانی‌نشده منجر به خطا خواهد شد. همچنین به نرم‌افزارهای پشتیبانی‌شده توسط Apigee و نسخه‌های پشتیبانی‌شده مراجعه کنید.

۲۸۳۹۴۷۰۵۳ اشکال

مشکلی که باعث می‌شد Edge Microgateway اولین محصول API را در لیست محصولات API مرتبط با یک برنامه برگرداند، برطرف شد. اکنون ما بر اساس درخواست، محصول API صحیح را برای برگرداندن تعیین می‌کنیم.

۲۷۴۴۴۳۲۹ اشکال

مشکلی که باعث می‌شد داکر یک نسخه قدیمی از ایمیج را دریافت کند، برطرف شد. نسخه Node داکر به نسخه ۱۸ Node.js به‌روزرسانی شده است. اکنون ایمیج داکر را با نسخه 18.17-buster-slim می‌سازیم.

مشکلات امنیتی برطرف شد

هیچ کدام.

۳.۳.۱

در ۷ ژوئن ۲۰۲۲، ما اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.3.1 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۳.۱ ۳.۳.۱ ۳.۳.۱ ۳.۳.۱ ۳.۲.۲

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۲۲۰۸۸۵۲۹۳ ویژگی

نسخه ۱۶ نود جی اس اکنون پشتیبانی می‌شود.

۲۳۱۹۷۲۶۰۸ اشکال

مشکلی که باعث می‌شد دستور private configure هنگام تلاش برای پیکربندی برای یک ابر خصوصی، خطایی ایجاد کند، برطرف شد.

۲۳۳۳۱۵۴۷۵ اشکال

مشکلی که باعث می‌شد افزونه json2xml هنگام تبدیل پاسخ از JSON به XML و هنگام استفاده در ترکیب با افزونه accumulate-response خطای تجزیه ایجاد کند، برطرف شد.

۲۲۱۴۳۲۷۹۷ تغییر

نسخه Docker Node.js از تصویر پایه Edge Microgateway به Node.js 14 ارتقا یافت.

۲۱۵۷۴۸۷۳۲ ویژگی

پشتیبانی از احراز هویت با توکن SAML به دستور revokekeys اضافه شد.

اکنون می‌توانید با استفاده از گزینه -t در دستور revokekeys به جای نام کاربری و رمز عبور، یک توکن SAML ارسال کنید.

برای جزئیات، به مرجع خط فرمان مراجعه کنید.

۲۱۸۷۲۳۸۸۹ به‌روزرسانی سند

مستندات به‌روزرسانی شد تا پیوندی به افزونه‌های پشتیبانی‌شده‌ی Edge Microgateway که در GitHub ذخیره شده‌اند، اضافه شود. به افزونه‌های موجود همراه با Edge Microgateway مراجعه کنید.

مشکلات امنیتی برطرف شد

شناسه مسئله توضیحات
CVE-2021-23413 این موضوع روی بسته jszip قبل از نسخه ۳.۷.۰ تأثیر می‌گذارد. ایجاد یک فایل zip جدید با نام‌هایی که روی مقادیر نمونه اولیه Object تنظیم شده‌اند (مثلاً proto، toString و غیره) منجر به یک شیء برگشتی با یک نمونه نمونه اولیه اصلاح‌شده می‌شود.

۳.۳.۰

در ۴ فوریه ۲۰۲۲، ما اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.3.0 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۳.۰ ۳.۳.۰ ۳.۳.۰ ۳.۳.۰ ۳.۲.۲

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۲۱۹۵۵۶۸۲۴ مشکل شناخته شده Edge Microgateway Gateway 3.3.0 با دستور npm audit fix سازگار نیست.

اجرای npm audit fix باعث می‌شود apigeetool به نسخه ۰.۱۵.۲ ارتقا یابد، که این امر بر دستور 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 برطرف خواهد شد.

۱۳۸۶۲۲۹۹۰ ویژگی

یک پرچم جدید برای افزونه‌ی Quota، isHTTPStatusTooManyRequestEnabled ، افزونه را طوری پیکربندی می‌کند که در صورت وجود نقض سهمیه، به جای وضعیت ۴۰۳، وضعیت پاسخ HTTP 429 را برگرداند. برای سهمیه به گزینه‌های پیکربندی مراجعه کنید.

۱۹۲۵۳۴۴۲۴ اشکال

مشکلی که باعث می‌شد کد پاسخ مشاهده‌شده در Apigee analytics با کد پاسخ Edge Microgateway مطابقت نداشته باشد، برطرف شد.

۱۹۸۹۸۶۰۳۶ بهبود Edge Microgateway اکنون کلید عمومی یک ارائه‌دهنده هویت (IDP) را در هر بازه نظرسنجی دریافت می‌کند و همچنین در صورت تغییر کلید عمومی IDP، کلید را به‌روزرسانی می‌کند. پیش از این، افزونه extauth در صورت تغییر کلید عمومی یک IDP، قادر به به‌روزرسانی کلید عمومی بدون بارگذاری مجدد Edge Microgateway نبود.
۱۶۸۷۱۳۵۴۱ اشکال

مستندات برای توضیح نحوه پیکربندی TLS/SSL برای چندین هدف بهبود یافته است. به بخش «استفاده از گزینه‌های SSL/TLS کلاینت» مراجعه کنید.

۱۷۱۵۳۸۴۸۳ اشکال

مستندات برای اصلاح قرارداد نامگذاری فایل‌های لاگ تغییر داده شد. به قراردادهای نامگذاری فایل‌های لاگ مراجعه کنید.

۱۵۷۹۰۸۴۶ اشکال

مستندات تغییر داده شده است تا نحوه نصب نسخه خاصی از Edge Microgateway را به درستی توضیح دهد. در صورت داشتن اتصال اینترنت، به بخش ارتقاء Edge Microgateway مراجعه کنید.

۲۱۵۷۴۸۴۲۷ اشکال مشکلی که در آن دستور revokekeys هنگام لغو یک کلید با استفاده از یک جفت کلید و رمز موجود، خطایی را برمی‌گرداند، برطرف شد.
۲۰۵۵۲۴۱۹۷ اشکال مستندات به‌روزرسانی شد تا لیست کامل سطوح ثبت وقایع را شامل شود. به ویژگی‌های edgemicro و نحوه تنظیم سطح ثبت وقایع مراجعه کنید.

نسخه ۳.۲.x

رفع اشکالات و بهبودها نسخه ۳.۲.x

۳.۲.۳

در ۱۷ سپتامبر ۲۰۲۱، ما اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.2.3 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۲.۳ ۳.۲.۳ ۳.۲.۳ ۳.۲.۳ ۳.۲.۲

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۱۹۲۴۱۶۵۸۴ ویژگی

ویژگی پیکربندی disableStrictLogFile به شما امکان می‌دهد مجوزهای سختگیرانه فایل را در فایل گزارش برنامه api-log.log کاهش دهید. برای جزئیات بیشتر، به نحوه کاهش مجوزهای فایل گزارش مراجعه کنید.

۱۹۲۷۹۹۸۹ ویژگی

ویژگی پیکربندی on_target_response_abort به شما امکان می‌دهد نحوه رفتار Edge Microgateway را در صورت بسته شدن زودهنگام ارتباط بین کلاینت (Edge Microgateway) و سرور هدف کنترل کنید. برای جزئیات بیشتر، به ویژگی‌های edgemicro مراجعه کنید.

۱۴۸۰۶۲۴۱۵ اشکال مشکلی که در آن در یک زمینه کانتینر Docker، Edge Microgateway با دستور docker stop {containerId} به درستی خاموش نمی‌شد، برطرف شد. این فرآیند از بین رفت، اما فایل‌های .sock و .pid حذف نشدند. اکنون فایل‌ها حذف شده‌اند و راه‌اندازی مجدد همان کانتینر همانطور که انتظار می‌رفت، کار می‌کند.
۱۹۰۷۱۵۶۷۰ اشکال مشکلی که باعث می‌شد برخی از درخواست‌ها در حین فعالیت بارگذاری مجدد داخلی microgateway گیر کنند، برطرف شد. این مشکل متناوب بود و در شرایط ترافیک بالا رخ می‌داد. این مشکل زمانی مشاهده می‌شد که از ویژگی‌های tokenCache و cacheKey افزونه OAuth استفاده می‌شد.
۱۸۳۹۱۰۱۱۱ اشکال مشکلی که در آن یک آدرس اینترنتی مسیر منبع با علامت اسلش انتهایی به اشتباه به عنوان یک مسیر منبع جداگانه تفسیر می‌شد، برطرف شد. اکنون، برای مثال، مسیرهای /country/all و /country/all/ به عنوان یک مسیر یکسان تفسیر می‌شوند.

مشکلات امنیتی برطرف شد

شناسه مسئله توضیحات
CVE-2020-28503 کپی-پروپوزهای بسته قبل از نسخه ۲.۰.۵ از طریق قابلیت اصلی در برابر آلودگی نمونه اولیه (Prototype Pollution) آسیب‌پذیر هستند.
CVE-2021-23343 تمام نسخه‌های بسته‌ی path-parse از طریق عبارات منظم splitDeviceRe، splitTailRe و splitPathRe در برابر حمله‌ی رد سرویس عبارات منظم (ReDoS) آسیب‌پذیر هستند. ReDoS پیچیدگی زمانی چندجمله‌ای در بدترین حالت را نشان می‌دهد.

۳.۲.۲

در روز پنجشنبه، ۱۵ ژوئیه ۲۰۲۱، ما اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.2.2 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۲.۲ ۳.۲.۲ ۳.۲.۲ ۳.۲.۲ ۳.۲.۲

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۱۸۵۳۲۳۵۰۰ تغییر

مقدار expires_in از رشته به عدد صحیح تغییر کرد.

APIهای درخواست توکن و درخواست توکن تازه‌سازی، اکنون expires_in به عنوان یک مقدار صحیح مشخص شده بر حسب ثانیه برمی‌گردانند.

برای مطابقت با RFC 6749 چارچوب مجوز OAuth 2.0، مقدار مورد انتظار برای پارامتر پیکربندی expires_in از رشته به عدد صحیح تغییر یافته است. برای جزئیات بیشتر، به مرجع عملیات و پیکربندی مراجعه کنید.

۱۸۸۴۹۲۰۶۵ تغییر پایان پشتیبانی از Node.js 8

از نسخه ۳.۲.۲ به بعد، Node.js 8 دیگر پشتیبانی نخواهد شد. برای اطلاعات بیشتر، به نرم‌افزارهای پشتیبانی‌شده و نسخه‌های پشتیبانی‌شده مراجعه کنید: Edge Microgateway .

۱۸۳۹۹۰۳۴۵ ویژگی پیکربندی خروجی گزارش برای کانتینر داکر

پارامتر پیکربندی Edge Microgateway با نام to_console به شما امکان می‌دهد اطلاعات لاگ را به جای یک فایل لاگ، به خروجی استاندارد ارسال کنید. اگر مراحل اجرای Edge Microgateway را در یک کانتینر Docker دنبال کنید، کانتینر به طور پیش‌فرض خروجی استاندارد و خروجی خطا را به فایلی که در کانتینر و در آدرس ${APIGEE_ROOT}/logs/edgemicro.log قرار دارد، هدایت می‌کند.

برای جلوگیری از ارسال اطلاعات لاگ به edgemicro.log ، هنگام اجرای کانتینر از متغیر جدید LOG_CONSOLE_OUTPUT_TO_FILE استفاده کنید.

برای جزئیات بیشتر در مورد نحوه استفاده از این متغیر جدید، به «استفاده از Docker برای Edge Microgateway» مراجعه کنید.

۱۸۳۰۵۷۶۶۵ ویژگی مسیرهای فایل‌های edgemicro.pid و edgemicro.sock را قابل تنظیم کنید.

پارامتر جدید -w, --workdir ‎ برای اجرای یک کانتینر Docker با Edge Microgateway، به شما امکان می‌دهد مسیر دایرکتوری را که فایل‌های edgemicro.sock و edgemicro.pid باید در یک کانتینر Docker ایجاد شوند، مشخص کنید. به استفاده از Docker برای Edge Microgateway مراجعه کنید.

۱۹۱۳۵۲۶۴۳ ویژگی ایمیج داکر برای Edge Microgateway به‌روزرسانی شد تا از نسخه ۱۲.۲۲ نودجی‌اس استفاده کند. به بخش «استفاده از داکر برای Edge Microgateway» مراجعه کنید.

مشکلات امنیتی برطرف شد

شناسه مسئله توضیحات
CVE-2021-28860 در Node.js mixme، قبل از نسخه ۰.۵.۱، یک مهاجم می‌توانست ویژگی‌های یک شیء را از طریق '__proto__' و از طریق توابع mutate() و merge() اضافه یا تغییر دهد. ویژگی آلوده مستقیماً به هر شیء در برنامه اختصاص داده می‌شود. این امر، دسترسی به برنامه را در معرض خطر قرار می‌دهد و باعث ایجاد حمله انکار سرویس (DoS) می‌شود.
CVE-2021-30246 در بسته jsrsasign از نسخه ۱۰.۱.۱۳ برای Node.js، برخی از امضاهای نامعتبر RSA PKCS#1 نسخه ۱.۵ به اشتباه معتبر تشخیص داده می‌شوند. توجه: هیچ حمله عملی شناخته شده‌ای وجود ندارد.
CVE-2021-23358 بسته‌ی دارای علامت زیرخط از نسخه‌ی ۱.۱۳.۰-۰ و قبل از ۱.۱۳.۰-۲، و از نسخه‌ی ۱.۳.۲ و قبل از ۱.۱۲.۱ در برابر تزریق کد دلخواه از طریق تابع قالب آسیب‌پذیر است، به‌ویژه زمانی که یک ویژگی متغیر به عنوان آرگومان ارسال شود، زیرا بررسی‌های لازم انجام نشده است.
CVE-2021-29469 Node-redis یک کلاینت Node.js Redis است. قبل از نسخه ۳.۱.۱، وقتی کلاینت در حالت نظارت است، عبارت regex begin که برای شناسایی پیام‌های نظارت استفاده می‌شود، می‌تواند باعث backtracking نمایی در برخی رشته‌ها شود. این مشکل می‌تواند منجر به انکار سرویس شود. این مشکل در نسخه ۳.۱.۱ برطرف شده است.
CVE-2020-8174 ایمیج داکر برای استفاده از نسخه ۱۲.۲۲ نود جی اس به‌روزرسانی شد.

۳.۲.۱

در روز جمعه، ۵ مارس ۲۰۲۱، اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.2.1 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۲.۱ ۳.۲.۱ ۳.۲.۱ ۳.۲.۱ ۳.۲.۱

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۱۸۰۳۶۲۱۰۲ اشکال مشکلی که باعث می‌شد کلیدهای JWK با مقدار null باعث از کار افتادن برنامه‌ها شوند، برطرف شد.

اکنون شرط تهی مدیریت می‌شود تا از ارسال مقدار تهی در jwkPublicKeys جلوگیری شود.

توجه: این رفع مشکل مستلزم آن است که پروکسی edgemicro-auth را ارتقا دهید.

۱۷۹۹۷۱۷۳۷ اشکال مشکلی که در آن پاسخ‌های وضعیت هدف 4XX / 5XX به عنوان خطاهای پروکسی برای پروکسی‌های edgemicro_* ثبت می‌شدند، برطرف شد.

برای تراکنش‌های Edge Microgateway، تعداد خطاهای هدف نادرست در داشبورد تجزیه و تحلیل کد خطای Apigee Edge نشان داده می‌شد. کدهای خطا برای خطاهای هدف به عنوان خطاهای پروکسی شمارش می‌شدند. این مشکل برطرف شده و تعداد خطاهای هدف صحیح اکنون نشان داده می‌شود.

۱۷۹۶۷۴۶۷۰ ویژگی یک ویژگی جدید اضافه شده است که به شما امکان می‌دهد لیست محصولات API قرار داده شده در JWT را بر اساس کدهای وضعیت محصول فیلتر کنید.

محصولات API سه کد وضعیت دارند - در انتظار، تأیید شده و لغو شده. یک ویژگی جدید به نام allowProductStatus به سیاست Set JWT Variables در edgemicro-auth proxy اضافه شده است. برای استفاده از این ویژگی برای فیلتر کردن محصولات API فهرست شده در JWT:

  1. پروکسی edgemicro-auth را در ویرایشگر پروکسی Apigee باز کنید.
  2. ویژگی allowProductStatus به XML مربوط به سیاست SetJWTVariables اضافه کنید و لیستی از کدهای وضعیت را که با کاما از هم جدا شده‌اند، برای فیلتر کردن مشخص کنید. برای مثال، برای فیلتر کردن وضعیت‌های Pending و Revoked :
    <?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 را ارتقا دهید.

۱۷۸۴۲۳۴۳۶ اشکال مقادیر کلید و رمز عبور که در رابط خط فرمان یا از طریق متغیرهای محیطی ارسال می‌شوند، در آرگومان‌های خط فرمان کاوشگر فرآیند قابل مشاهده هستند.

مشکلی گزارش شد که در آن مقادیر کلید و رمز Edge Microgateway که یا از آرگومان‌های خط فرمان ارسال شده یا از طریق متغیرهای محیطی تنظیم شده‌اند، پس از شروع microgateway در آرگومان‌های فرآیندهای کارگر/فرزند گره نمایش داده می‌شدند.

برای رفع این مشکل برای سناریوی متغیر محیطی، مقادیر دیگر در آرگومان‌های خط فرمان کاوشگر فرآیند قابل مشاهده نیستند.

اگر مقادیر کلید و رمز هنگام شروع microgateway در خط فرمان ارسال شوند، تنظیمات جایگزین مقادیر متغیرهای محیطی در صورت تنظیم می‌شوند. در این حالت، مقادیر همچنان در آرگومان‌های خط فرمان process explorer قابل مشاهده هستند.

۱۷۸۳۴۱۵۹۳ اشکال خطای مستندات مربوط به افزونه apikeys برطرف شد.

فایل README مربوط به افزونه apikeys به اشتباه شامل یک ویژگی gracePeriod بود. ما این ویژگی و توضیحات آن را از README حذف کردیم.

ویژگی gracePeriod در افزونه oauth پیاده‌سازی شده است. برای استفاده از ویژگی مهلت استفاده، باید از افزونه oauth استفاده کنید.

۱۷۹۳۶۶۴۴۵ اشکال مشکلی که در آن بار داده برای همه درخواست‌های GET به اهداف کاهش می‌یافت، برطرف شد.

شما می‌توانید رفتار مورد نظر را با یک پارامتر پیکربندی جدید edgemicro: enable_GET_req_body کنترل کنید. وقتی روی true تنظیم شود، هدر درخواست transfer-encoding: chunked به تمام درخواست‌های GET اضافه می‌شود و در صورت وجود، یک payload GET به مقصد ارسال می‌شود. اگر false (پیش‌فرض)، payload قبل از ارسال درخواست به مقصد، بی‌سروصدا حذف می‌شود.

برای مثال:

edgemicro:
 enable_GET_req_body: true

طبق RFC 7231، بخش ۴.۳.۱: GET ، یک درخواست GET هیچ معنای تعریف‌شده‌ای ندارد، بنابراین می‌تواند به هدف ارسال شود.

۳.۲.۰

در روز پنجشنبه، ۲۱ ژانویه ۲۰۲۱، اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.2.0 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۲.۰ ۳.۲.۰ ۳.۲.۰ ۳.۲.۰ ۳.۲.۰

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۱۵۲۶۴۰۶۱۸ اشکال افزونه‌ی extauth را فعال کردم تا هدر x-api-key را طوری تنظیم کند که در صورت معتبر بودن توکن، حاوی client_id روی شیء درخواست باشد. سپس x-api-key برای افزونه‌های بعدی در دسترس خواهد بود.
۱۶۸۸۳۶۱۲۳، ۱۷۲۲۹۵۴۸۹، ۱۷۶۴۶۲۳۵۵، ۱۷۶۴۶۲۸۷۲ ویژگی پشتیبانی از Node.js 14 اضافه شد.
۱۷۲۳۷۶۸۳۵ اشکال از واحد زمان صحیح برای نقطه پایانی /token در پروکسی edgemicro-auth استفاده کنید.

مشکلی که در آن نقطه پایانی /token در پروکسی edgemicro-auth expires_in بر حسب میلی‌ثانیه برمی‌گرداند، برطرف شد؛ با این حال، طبق مشخصات OAuth ، این مقدار باید با واحد زمانی refresh_token_expires_in که ثانیه است، سازگار باشد.

این اصلاحیه طول زمان انقضا را تغییر نمی‌دهد، بلکه فقط واحد زمان را تغییر می‌دهد. این اصلاحیه فقط روی فیلد expires_in در payload پاسخ توکن دسترسی اعمال می‌شود. توکن JWT در همان payload پاسخ شامل دو فیلد iat و exp خواهد بود و آنها به درستی تولید می‌شوند و همیشه با واحد زمان seconds تولید شده‌اند.

اگر کلاینت‌ها برای به‌روزرسانی توکن‌ها قبل از انقضای توکن‌ها، به مقدار expires_in بر حسب میلی‌ثانیه متکی بوده‌اند، اعمال این اصلاحیه بدون تغییر کلاینت‌ها باعث به‌روزرسانی‌های مکرر و غیرضروری بسیار بیشتری می‌شود. این کلاینت‌ها باید اصلاح شوند تا تغییر واحد زمان را در نظر بگیرند تا رفتار اصلی حفظ شود.

اگر کلاینت‌ها همیشه از مقادیر موجود در توکن JWT برای ارزیابی دوره به‌روزرسانی توکن استفاده کرده‌اند، پس کلاینت‌ها نیازی به تغییر ندارند.

۱۷۳۰۶۴۶۸۰ اشکال مشکلی که در آن میکروگیت‌وی درخواست هدف را قبل از پردازش تمام بخش‌های داده خاتمه می‌داد، برطرف شد.

این یک مشکل متناوب است که در درخواست‌های با حجم بالای بار مشاهده می‌شود و این مشکل در نسخه ۳.۱.۷ معرفی شده است.

۱۷۴۶۴۰۷۱۲ اشکال مدیریت صحیح داده‌ها را به افزونه‌ها اضافه کنید.

مدیریت صحیح داده‌ها به افزونه‌های زیر اضافه شده است: json2xml ، accumulate-request ، accumulate-response و header-uppercase . برای جزئیات افزونه، به microgateway-plugins مراجعه کنید.

نسخه ۳.۱.x

رفع اشکالات و بهبودها v.3.1.x

۳.۱.۸

روز دوشنبه، ۱۶ نوامبر ۲۰۲۰، اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.1.8 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۱.۸ ۳.۱.۹ ۳.۱.۷ ۳.۱.۳ ۳.۱.۲

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۱۶۹۲۰۱۲۹۵ اشکال مقادیر عددی و بولی در تگ‌های متغیرهای محیطی به اشتباه تجزیه و تحلیل می‌شدند.

مدیریت جایگزینی متغیرهای محیطی، تمام مقادیر را به صورت رشته تجزیه می‌کرد که منجر به خطاهای تجزیه برای مقادیر بولی یا عددی می‌شد. برای مثال edgemicro.port انتظار یک مقدار عددی را دارد و به آن نیاز دارد. اصلاحاتی برای پشتیبانی از مقادیر بولی و عددی انجام شد. برای جزئیات پیکربندی ، به تنظیم ویژگی‌های پیکربندی با مقادیر متغیرهای محیطی مراجعه کنید.

۱۶۹۲۰۲۷۴۹ اشکال جایگزینی متغیر محیطی در برخی موارد کار نمی‌کرد.

مدیریت جایگزینی متغیرهای محیطی برای برخی از ویژگی‌های پیکربندی کار نمی‌کرد. برای اطلاعات بیشتر در مورد محدودیت‌ها ، به تنظیم ویژگی‌های پیکربندی با مقادیر متغیرهای محیطی مراجعه کنید.

۱۶۸۷۳۲۹۴۲ اشکال مشکلی که در آن محدوده‌های OAuth دسترسی پروکسی API را آنطور که انتظار می‌رفت محدود نمی‌کردند، برطرف شد.

جریان /token در پروکسی edgemicro-auth، JWTهایی بدون محدوده‌های صحیح محصول تعریف‌شده در Edge تولید می‌کرد که در نتیجه دو سناریوی مختلف رخ داده بود: ۱) درخواست ارسالی به جریان /token پارامتر محدوده را ارسال نمی‌کرد، یا ۲) یک محدوده نامعتبر در درخواست ارسالی به جریان /token ارسال می‌شد. اصلاحیه‌ای برای بازگرداندن تمام محدوده‌های تعریف‌شده در محصولات API در Apigee Edge انجام شد.

۱۷۰۶۰۹۷۱۶ اشکال مشکلی که در آن جریان /refresh در پروکسی edgemicro-auth یک JWT بدون apiProductList تولید می‌کرد، برطرف شد.

۱۷۰۷۰۸۶۱۱ اشکال دامنه‌های محصول API برای افزونه‌های سفارشی در دسترس نیستند.

محدوده‌های محصول API نه در دسترس افزونه‌های سفارشی قرار گرفتند و نه در فایل پیکربندی کش نوشته شدند. برای مشاهده نحوه دسترسی افزونه‌ها به جزئیات محدوده ، به بخش «درباره تابع init() افزونه» مراجعه کنید.

۱۶۹۸۱۰۷۱۰ ویژگی کلید و رمز در فایل پیکربندی کش ذخیره می‌شوند.

کلید و رمز Edge Microgateway در هر بار بارگذاری/شروع مجدد در فایل yaml پیکربندی کش ذخیره می‌شدند. در نسخه ۳.۱.۸، کلید و رمز دیگر در فایل پیکربندی کش ذخیره نمی‌شوند. اگر کلید و رمز قبلاً در فایل پیکربندی کش نوشته شده باشند، حذف خواهند شد.

۱۷۰۷۰۸۶۲۱ ویژگی افزونه آنالیتیکس رو نمیشه غیرفعال کرد.

در نسخه‌های قبلی microgateway، افزونه‌ی تحلیلی به طور پیش‌فرض فعال بود و هیچ راهی برای غیرفعال کردن آن وجود نداشت. در نسخه ۳.۱.۸، یک پارامتر پیکربندی جدید، enableAnalytics ، برای فعال یا غیرفعال کردن افزونه‌ی تحلیلی معرفی شد. برای جزئیات بیشتر به مرجع پیکربندی مراجعه کنید.

۱۵۹۵۷۱۱۹ اشکال دریافت خطای تهی در قلاب onerror_request در افزونه‌های سفارشی برای زمان‌بندی پاسخ/سوکت.

اصلاحاتی برای پر کردن کد وضعیت HTTP و پیام خطای صحیح برای رویدادهای onerror_request و پیام خطای صحیح برای رویدادهای onerror_response انجام شد.

۳.۱.۷

روز پنجشنبه، ۲۴ سپتامبر ۲۰۲۰، اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.1.7 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۱.۷ ۳.۱.۸ ۳.۱.۶ ۳.۱.۲ ۳.۱.۱

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۱۳۱۷۰۸۱۰۵ اشکال افزونه‌ی analytics ، پاسخ تهی (null) حاصل از فراخوانی‌های axpublisher را به درستی مدیریت نکرد و باعث خروج کارگران شد.

۱۳۳۱۶۲۲۰۰ اشکال اطلاعات برنامه توسعه‌دهنده در تجزیه و تحلیل‌ها با پاسخ‌های وضعیت ۴۰۳ ناشی از مسیرهای غیرمجاز منابع محصول یا پاسخ‌های ۴۰۱ ناشی از یک توکن منقضی شده یا نامعتبر پر نشده بود.

۱۳۲۱۹۴۲۹۰ اشکال وقتی Apigee Edge برخی از سوابق تحلیلی را رد می‌کند، سوابق تحلیلی کنار گذاشته می‌شوند.

۱۵۸۶۱۸۹۹۴ اشکال اتصالات بیش از حد کلاینت Redis.

۱۶۱۴۰۴۳۷۳ اشکال در صورت دریافت پاسخ وضعیت ۴۰۴، آدرس کامل پروکسی (URI) در پیام پاسخ گنجانده شده بود.
۱۶۶۳۵۶۹۷۲ اشکال

اجرای Edge Microgateway با Node.js نسخه ۱۲.۱۳.x یا بالاتر، هنگام اجرای افزونه‌هایی که بار داده درخواست را تغییر می‌دهند، منجر به خطای زیر شد:

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

۱۶۸۶۸۱۷۴۶ اشکال بارگذاری مجدد دستی Edge Microgateway با redisBasedConfigCache:true کار نمی‌کرد.

۱۴۹۲۵۶۱۷۴ اشکال خطاهای افزونه OAuth برای خرابی‌های شبکه ثبت نشده‌اند.

۱۶۶۵۱۷۱۹۰ اشکال داده‌های jwk_public_keys توسط Synchronizer ذخیره و واکشی نشده و در Redis ذخیره شده‌اند.

۱۴۱۶۵۹۸۸۱ اشکال خطا در مدیریت گواهی هدف نامعتبر، پاسخ‌های خطای گمراه‌کننده‌ای را نشان داد.

۱۴۲۸۰۸۶۹۹ اشکال افزونه‌ی accesscontrol بخش‌های «allow» و «deny» را به درستی مدیریت نمی‌کرد.

اکنون microgateway بخش رد کردن را به درستی پردازش می‌کند و ترتیب بخش‌های «اجازه» و «رد کردن» را رعایت می‌کند. یک ویژگی جدید noRuleMatchAction به فایل پیکربندی microgateway اضافه شده است تا برابری با سیاست Apigee Edge AccessControl را فراهم کند. همچنین به README افزونه کنترل دسترسی در GitHub مراجعه کنید.

۳.۱.۶

روز پنجشنبه، 20 آگوست 2020، اصلاحات و بهبودهای زیر را برای Edge Microgateway منتشر کردیم.

نسخه‌های کامپوننت:

جدول زیر شماره نسخه‌های پروژه‌های اجزای منفرد مرتبط با Edge Microgateway 3.1.6 را فهرست می‌کند. توجه داشته باشید که از آنجا که هر جزء یک پروژه جداگانه است، شماره‌های انتشار ممکن است با نسخه اصلی محصول مطابقت نداشته باشند:

میکروگیت‌وی هسته پیکربندی افزونه‌ها اج‌اوث
۳.۱.۶ ۳.۱.۷ ۳.۱.۵ ۳.۱.۱ ۳.۱.۱

رفع اشکالات و بهبودها:

شناسه مسئله نوع توضیحات
۱۶۳۷۱۱۹۹۲ ویژگی گزینه‌های سفارشی مکان فایل کلید و گواهی برای دستور rotatekey.

برای جزئیات بیشتر در مورد این گزینه‌های فرمان جدید، به کلیدهای چرخش مراجعه کنید.

۱۵۴۸۳۸۲۵۹ اشکال چرخش کلید را برای چندین نمونه در چندین مرکز داده برطرف کنید

برای جزئیات بیشتر در مورد این گزینه‌های فرمان جدید، به کلیدهای چرخش مراجعه کنید.

۱۴۵۵۲۵۱۳۳ ویژگی آلفا معیارهای افزونه جدید

برای جزئیات بیشتر به README مربوط به معیارهای افزونه جدید در گیت‌هاب مراجعه کنید.

۱۵۹۳۹۶۸۷۹ اشکال حذف بسته کمکی استفاده نشده
۱۶۱۰۹۲۹۴۳ اشکال اعتبارسنجی مسیر پایه نادرست بود

قبل از نسخه ۳.۱.۶، مسیر پایه پروکسی وقتی به / ختم نمی‌شد، به اشتباه تطبیق داده می‌شد.

موارد زیر رفتار قبلی را (که در ۳.۱.۶ اصلاح شده است) بیشتر توضیح می‌دهد:

فرض کنید یک پروکسی با مسیر پایه /hello/v1 و مسیر هدف به https://mocktarget.apigee.net پیکربندی شده است. حال، فرض کنید پروکسی درخواست‌های زیر را دریافت می‌کند:

مسیر درخواست مسیر حل‌شده نتیجه
/سلام/v1/json https://mocktarget.apigee.net/json مسیر حل‌شده صحیح است زیرا مسیر پایه /hello/v1 ‎ به درستی تطبیق داده شده است.
مسیر درخواست مسیر حل‌شده نتیجه
/سلام/v1json https://mocktarget.apigee.netjson The resolved path is incorrect because /hello/v1 is a substring of /hello/v1json . Because /hello/v1json is not a valid path, Edge Microgateway should have thrown a 404. In version 3.1.6 and later, a 404 error is thrown in this case.
160431789 اشکال Custom Plugins - config object passed to init is not populated

Apigee Edge configuration is made available in the configuration object for all custom plugins after merging with the Edge Microgateway configuration file. Seeconfig .

162758808 اشکال New quota configuration for Redis backing store

You can use the following configuration to specify a Redis backing store for quotas. For details, see Using a Redis backing store for quota .

3.1.5

On Friday, June 26, 2020, we released the following fixes and enhancements to Edge Microgateway.

Component versions:

The following table lists the version numbers for the individual component projects associated with Edge Microgateway 3.1.5. Note that because each component is a separate project, release numbers may not match up with the main product version:

microgateway هسته پیکربندی افزونه‌ها edgeauth
3.1.5 ۳.۱.۶ 3.1.4 3.1.0 3.1.0

Bug fixes and enhancements:

شناسه مسئله نوع توضیحات
159210507 ویژگی Configuration to exclude plugin processing

A new configuration feature was added to skip the processing of plugins for specified URLs. For details, see Configuring exclude URLs for plugins .

156986819, 158529319 اشکال Issues with the json2xml plugin were fixed

Issues were fixed where the plugin produced duplicate Content-Type headers and where headers were not sent to the target as expected in some cases.

156560067, 159688634 ویژگی

Use environment variable values in configuration

A feature was added that allows you to specify environment variables using tags in the configuration file. The specified environment variable tags are replaced by the actual environment variable values. Replacements are stored in memory only and not stored in the original configuration or cache files. For details, see Setting configuration attributes with environment variable values .

155077210 اشکال A log formatting issue was fixed.

An issue was fixed where the target host appeared in logs with extraneous colons appended to it.

153673257 اشکال

(Edge for Private Cloud only) Microgateway-aware products not pulled

An issue was fixed where microgateway-aware products were not being pulled. This issue exsisted on Edge for Private Cloud installations only.

154956890, 155008028, 155829434 ویژگی Support filtering downloaded products by custom attributes

For details, see Filtering products by custom attributes

153949764 اشکال An issue was fixed where the Edge Microgateway process crashed when the log destination file was full

Exception handling was improved to trap the error and print a message to the console.

155499600 اشکال Issues with key rotation and KVM upgrade were fixed

See also Rotating JWT keys .

3.1.4

On Friday, April 23, 2020, we released the following fix to Edge Microgateway.

Bug fix:

A dependency issue in version 3.1.3 was fixed. Version 3.1.3 has been marked as deprecated in the npm repository . Otherwise, all of the bug fixes and enhancements described in the version 3.1.3 release note apply to this release.

3.1.3

On Wednesday, April 15, 2020, we released the following fixes and enhancements to Edge Microgateway.

Component versions:

The following table lists the version numbers for the individual component projects associated with Edge Microgateway 3.1.3. Note that because each component is a separate project, release numbers may not match up with the main product version:

microgateway هسته پیکربندی افزونه‌ها edgeauth
3.1.3 3.1.3 3.1.3 3.0.14 ۳.۰.۹

Bug fixes and enhancements:

  • 153509313 - An issue was fixed where the Node.js debug module results in memory leaks. The issue exists in version v3.1.0, v3.1.1, and 3.1.2.
  • 153509313 - An issue was fixed where the same message ID for two different transactions was printed in the logging output.
  • 151673570 - An issue was fixed where Edge Microgateway was not updated to use new Apigee KVM APIs. Edge Microgateway now uses the new commands for adding and updating the KVM values.
  • 152822846 - In previous releases, Edge Microgateway was updated so that its processing of resource path mapping matches that of Apigee Edge. In this release, an issue was fixed where the pattern / literal_string /* was not handled correctly. For example, /*/2/* . See also Configuring the behavior of a resource path of '/', '/*', and '/**' .
  • 152005003 - Changes were made to enable organization and environment scoped identifiers for quotas.
  • 152005003 - Changes were made to enable organization and environment scoped identifiers for quotas. The combination of 'org + env + appName + productName' is used as the quota identifier.

۳.۱.۲

On Monday, March 16, 2020, we released the following fixes and enhancements to Edge Microgateway.

Component versions:

The following table lists the version numbers for the individual component projects associated with Edge Microgateway 3.1.3. Note that because each component is a separate project, release numbers may not match up with the main product version:

microgateway هسته پیکربندی افزونه‌ها edgeauth
۳.۱.۲ ۳.۱.۲ ۳.۱.۲ 3.0.13 ۳.۰.۹

Bug fixes and enhancements:

  • 151285018 - A feature enhancement was made to add HTTP proxy support for traffic between Edge Microgateway and backend targets. In addition, issues were fixed for existing HTTP proxy support between Edge Microgateway and Apigee Edge. For details, see:
  • 149101890 - The log notification code for cases where the target server or load balancer closes its connection was changed from ERROR to INFO.
  • 150746985 - An issue was fixed where the edgemicro verify command did not work properly if either redisBasedConfigCache: true or quotaUri: https://%s-%s.apigee.net/edgemicro-auth were present in the config file.
  • 151284716 - An enhancement was made to close server connections faster when workers are restarted during a reload.
  • 151588764 - Update Node.js version in the Docker image used to run Edge Microgateway in a Docker container to 12, because Node.js v8 is deprecated.
  • 151306049 - A documentation update was made to list the Apigee Edge management APIs that are used by Edge Microgateway CLI commands. See What management APIs does Edge Microgateway use? .

۳.۱.۱

On Thursday, February 20, we released the following fixes and enhancements to Edge Microgateway.

Component versions:

The following table lists the version numbers for the individual component projects associated with Edge Microgateway 3.1.1. Note that because each component is a separate project, release numbers may not match up with the main product version:

microgateway هسته پیکربندی افزونه‌ها edgeauth
۳.۱.۱ ۳.۱.۱ ۳.۱.۱ 3.0.13 ۳.۰.۹

Bug fixes and enhancements:

  • 146069701 - An issue was fixed where the microgateway-core module did not respect HTTP_PROXY and HTTPS_PROXY environment variables. With this change, proxy settings in the YAML configuration file, if specified, are now ignored; only the environment variables are used to specify the proxy.

    If you want to specify proxy configuration in the configuration file, you must also specify an HTTP_PROXY variable that mentions the same proxy URL as the one specified in the config file. For example, if you specify the following configuration:

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

    You must also specify this environment variable:

    HTTP_PROXY=http://10.128.0.20:3128
  • 146320620 - A new configuration parameter, edgemicro.headers_timeout , was added. This attribute limits the amount of time (in milliseconds) the HTTP parser will wait to receive the complete HTTP headers. For example:
    edgemicro:
    keep_alive_timeout: 6000
    headers_timeout: 12000

    Internally, the parameter sets the Node.js Server.headersTimeout attribute on requests. (Default: 5 seconds more than the time set with edgemicro.keep_alive_timeout . This default setting prevents load balancers or proxies from erroneously dropping the connection.)

  • 149278885 - A new feature was added that allows you to set the target API timeout at the API proxy level instead of using one global timeout setting.

    If you set the TargetEndpoint property io.timeout.millis in the API proxy, Edge Microgateway will be able to retrieve that property and apply target endpoint-specific timeouts. If this parameter is not applied, Edge Microgateway uses the global timeout specified with edgemicro.request_timeout .

3.1.0

On Tuesday, January 21, we released the following fixes and enhancements to Edge Microgateway.

Component versions:

The following table lists the version numbers for the individual component projects associated with Edge Microgateway 3.1.0. Note that because each component is a separate project, release numbers may not match up with the main product version:

microgateway هسته پیکربندی افزونه‌ها edgeauth
3.1.0 3.1.0 3.1.0 3.0.12 ۳.۰.۹

Bug fixes and enhancements:

  • 144187500 - A new WARN level event will be logged when the quotas.failOpen flag is triggered. This flag is triggered if a quota-processing error occurs or if the "quota apply" request to Edge fails to update remote quota counters. In this case, the quota will be processed based on local counts only until the next successful remote quota sync happens. Previously, this event was only logged when the log level was set to DEBUG.

    برای مثال:

    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 - An issue was fixed where in-flight or new transactions were impacted whenever Edge Microgateway detected a change to an API proxy. Now, when a change is made to a proxy, Edge Microgateway refreshes the cache and worker nodes restart. With this change, in-flight transactions and new API calls being sent to the microgateway are not impacted.
  • 146378327 - The log level of sourceRequest , targetRequest , and targetResponse have been changed to the INFO level.
  • 146019878 - A discrepancy between the latency that was calculated for "API Proxy Performance" in Edge analytics and Edge Microgateway sourceResponse/targetResponse log events has been fixed. Now, the latency in Edge analytics and Microgateway log events is aligned.
  • Pattern matching logic related changes:
    • 147027862 - The oauth plugin was updated to support the following resource path matching patterns as specified in API Products:
      • /{literal}**
      • /{literal}*
      • Any combination of above two patterns

      With this change, Edge Microgateway plugin now follows the same pattern matching as Apigee Edge, as explained in Configuring the behavior of a resource path of '/', '/*', and '/**' .

    • 145644205 - Update pattern matching logic of apiKeys plugin to match oauth plugin.
  • 143488312 - A problem was fixed where leading or trailing spaces in the client ID parameter caused the creation of the JWT product list to be empty for OAuth token and API key requests.
  • 145640807 and 147579179 - A new feature has been added that allows a special Edge Microgateway instance called "the synchronizer" to retrieve configuration data from Apigee Edge and write it to a local Redis database. Other microgateway instances can then be configured to read their configuration data from the database. This feature adds a level of resilience to Edge Microgateway. It allows microgateway instances to start up and function without needing to communicate with Apigee Edge. For details, see Using the synchronizer .

    The syncrhonizer feature is currently supported to work with Redis 5.0.x.

Version 3.0.x

Bug fixes and enhancements v.3.0.x

3.0.10

On Friday, November 8, we released the following fixes and enhancements to Edge Microgateway.

Component versions:

The following table lists the version numbers for the individual component projects associated with Edge Microgateway 3.0.10. Note that because each component is a separate project, release numbers may not match up with the main product version:

microgateway هسته پیکربندی افزونه‌ها edgeauth
3.0.10 3.0.8 3.0.8 3.0.11 3.0.8

Bug fixes and enhancements:

  • 142677575 - A feature update was made so that the pattern matching for resource paths used in API products for Edge Microgateway now aligns with the resource path pattern matching used by Apigee Edge, as described in Configuring the behavior of a resource path of '/', '/*', and '/**' .

    Note: If you use a compound resource pattern like /*/2/** , you must ensure that the edgemicro_auth proxy is added to a standalone API product. Then, you must include that product in the proxy's Developer App, as illustrated in the following screenshot:

    alt_text

    Note: The features.isSingleForwardSlashBlockingEnabled configuration property, as described in Configuring the behavior of a resource path of '/', '/*', and '/**' , is not supported for Edge Microgateway.

  • 143740696 - The quotas configuration structure has changed (see also the release notes for version 3.0.9). The quotas property is used to configure the quota plugin. The change in structure was made to improve the clarity of the configuration elements. To configure the quota plugin, use the following YAML configuration. Note that the configuration property is called quotas . For details about the individual quotas configuration properties, see Configuration options for quota .

    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 - A new feature was added that allows you to use Redis as the quota backing store. If useRedis is true then the volos-quota-redis module used. When true, the quota is restricted to only those Edge Microgateway instances that connect to Redis. If false, the volos-quota-apigee module is used as the backing store, and the quota counter is global. For details, see Configuration options for quota . For example:
    edgemicro:
    ...
    quotas:
      useRedis: true
      redisHost: localhost
      redisPort: 6379
      redisDb: 1
  • 140574210 - The default expiration time for tokens generated by the edgemicro-auth proxy has been changed from 108000 milliseconds (1.8 minutes) to 1800 seconds (30 minutes).
  • 143551282 - To support SAML enabled orgs, the edgemicro genkeys command has been updated to include a ‑‑token parameter. This parameter lets you use an OAuth token for authentication instead of username/password. For details, see Generating keys .

۳.۰.۹

On Friday, October 11, we released the following fixes and enhancements to Edge Microgateway.

Component versions:

The following table lists the version numbers for the individual component projects associated with Edge Microgateway 3.0.9. Note that because each component is a separate project, release numbers may not match up with the main product version:

microgateway هسته پیکربندی افزونه‌ها edgeauth
۳.۰.۹ ۳.۰.۷ ۳.۰.۷ 3.0.10 ۳.۰.۷

Bug fixes and enhancements:

  • 141989374 - A new "fail open" feature was added for the quota plugin. When this feature is enabled, if a quota-processing error occurs or if the "quota apply" request to Edge fails to update remote quota counters, the quota will be processed based on local counts only until the next successful remote quota sync happens. In both of these cases, a quota-failed-open flag is set in the request object.

    To enable the quota "fail open" feature, set the following configuration:

    quotas :
     failOpen : true

    Note: In addition, the name of the OAuth plugin's fail-open request object flag has been changed to oauth-failed-open .

  • 142093764 - A configuration change was made to the edgemicro-auth proxy to prevent quota overruns. The change is to set the quota type to calendar . To use this improvement, you must update your edgemicro-auth to version 3.0.7 or higher.
  • 142520568 - A new feature has been added to enable the logging of the MP (message processor) ID in quota responses. To use this feature, you must update your edgemicro-auth proxy to version 3.0.7 or higher and set the following configuration:
    quotas:
      useDebugMpId: true

    When useDebugMpId is set, quota responses from Edge will contain the MP id and will be logged by Edge Microgateway. For example:

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

3.0.8

On Thursday, September 26, we released the following fixes and enhancements to Edge Microgateway.

Component versions:

The following table lists the version numbers for the individual component projects associated with Edge Microgateway 3.0.8. Note that because each component is a separate project, release numbers may not match up with the main product version:

microgateway هسته پیکربندی افزونه‌ها edgeauth
3.0.8 ۳.۰.۶ ۳.۰.۶ ۳.۰.۹ ۳.۰.۶

Bug fixes and enhancements:

  • 140025210 - A new "fail open" feature was added. This feature allows API processing to continue if an expired JWT token cannot be refreshed due to a connection error that prevents a successful API key verification call to the edgemicro-auth proxy.

    The feature allows you to set a grace period where the old token remains in cache and is re-used until the grace period expires. The feature allows Edge Microgateway to continue processing requests in case of a temporary connection failure. When connectivity resumes, and a successful Verify API Key call goes through, a new JWT is fetched and replaces the old JWT in the cache.

    To configure the new "fail open" feature, do the following:

    1. Set the following properties in the oauth stanza in the Edge Microgateway configuration file:
      oauth:
        failOpen: true
        failopenGraceInterval: time_in_seconds
        cacheKey: true
        ...

      برای مثال:

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

      In this example, the old token will be used for 5 seconds if it cannot be refreshed due to a connectivity problem. After 5 seconds, an authentication error will be returned.

  • 141168968 - An update was made to include the correlation_id in all plugin log output. In addition, the log levels for some logs were changed to error as required.
  • 140193349 - A update was made to the edgemicro-auth proxy to require the Edge Microgateway key and secret to be verified on every Verify API Key request. Edge Microgateway has been updated to always send the key and secret on every Verify API Key request. This change prevents clients from obtaining a JWT with only an API key.
  • 140090250 - An update was made to add diagnostic logging for quota processing. With this change, it is now possible to correlate quoto log output with the rest of Edge Microgateway logs.

۳.۰.۷

On Thursday, September 12, we released the following fixes and enhancements to Edge Microgateway.

Component versions:

The following table lists the version numbers for the individual component projects associated with Edge Microgateway 3.0.7. Note that because each component is a separate project, release numbers may not match up with the main product version:

microgateway هسته پیکربندی افزونه‌ها edgeauth
۳.۰.۷ ۳.۰.۵ ۳.۰.۵ 3.0.8 ۳.۰.۵

Bug fixes and enhancements:

  • 140075602 - An update was made to the OAuth plugin to return a 5xx status code where appropriate. Previously, the plugin only returned 4xx status codes in all non-200 cases. Now, for any message response that is not a 200 status, the exact 4xx or 5xx code will be returned, depending on the error.

    This feature is disabled by default. To enable this feature, add the oauth.useUpstreamResponse: true property to your Edge Microgateway configuration. For example:

    oauth:
      allowNoAuthorization: false
      allowInvalidAuthorization: false
      gracePeriod: 10
      useUpstreamResponse: true
  • 140090623 - In release 3.0.6, a new configuration property was added, quota.quotaUri . Set this config property if you want to manage quotas through the edgemicro-auth proxy that is deployed to your org. If this property is not set, the quota endpoint defaults to the internal Edge Microgateway endpoint. For example:
    edge_config:
      quotaUri: https://%s-%s.apigee.net/edgemicro-auth

    In release 3.0.7, the edgemicro-auth was updated to accept this new configuration. To use the quotaUri property, you must upgrade to the latest edgemicro-auth proxy. For details, see Upgrading the edgemicro-auth proxy.

  • 140470888 - An Authorization header was added to quota calls to provide authentication. Also, the edgemicro-auth proxy was modified to remove "organization" from the quota identifier. Because the quota endpoint resides in the customer's organization, the quota identifier is no longer needed.
  • 140823165 - The following property name:
    edgemicro:
        keepAliveTimeout

    was documented incorrectly in release 3.0.6. The correct property name is:

    edgemicro:
        keep_alive_timeout
  • 139526406 - A bug was fixed where an incorrect quota count occurred if a developer app had multiple products. Quota is now correctly enforced for each product in an app that has multiple products. The combination of 'appName + productName' is used as the quota identifier.

۳.۰.۶

On Thursday, August 29, we released the following fixes and enhancements to Edge Microgateway.

  • 138633700 - Added a new configuration property, keepAliveTimeout . This property enables you to set the Edge Microgateway timeout (in milliseconds). (Default: 5000 milliseconds)

    برای مثال:

    edgemicro:
      keep_alive_timeout: 600
  • 140090623 - Added a new configuration property, quotaUri . Set this config property if you want to manage quotas through the edgemicro-auth proxy that is deployed to your org. If this property is not set, the quota endpoint defaults to the internal Edge Microgateway endpoint. For example:
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

    To use this feature, you must first deploy the latest version of the edgemicro-auth proxy to your org. For details, see Upgrading the edgemicro-auth proxy .

  • 138722809 - Added a new configuration property, stack_trace . This property lets you to control whether or not stack traces appear in log files. For example:
    stack_trace: false

    If stack_trace is set to true , the stack trace will be printed in logs. If it is set to false , the stack trace will not be printed in logs.

۳.۰.۵

On Thursday, August 15, we released the following fixes and enhancements to Edge Microgateway.

اشکالات برطرف شد
  • 139005279 - An issue was fixed where the edgemicro status command did not return the right number of worker processes.
  • 138437710 - An issue was fixed in the ExitCounter class that prevented the proper log from being written.
General log message improvements
  • 139064652 - Added the capability to add trace and debug logging levels for event and system logs. For now, only the capability to add these log levels was added. Currently, available log levels are info , warn , and error .
  • 139064616 - Log output has been standardized for all console log statements. Console logging statements now includes these attributes:
    • مهر زمانی
    • Component name
    • Process ID
    • Console log message
JWT key and secret log message improvements
  • 138413755 - Improve JWT key and secret-related log messages for these CLI commands: cert, verify, upgradekvm, token, genkeys, revokekeys, rotatekey, and configure.
Timeout and connection refused error message improvements
  • 138413577 - Add and improve error handling for backend service timeouts.
  • 138413303 - Add and improve error handling for response and socket timeouts.
  • 138414116 - Add and improve error handling for "connection refused" errors.

۳.۰.۴

On Thursday, August 1, we released the following fixes and enhancements to Edge Microgateway.

  • 134445926 - Improvements to internal Edge Microgateway authentication.
  • 137582169 - Addressed an issue where unwanted processes started up. The extra processes caused plugins to reload and used excessive memory. Edge Microgateway now keeps the number of processes within the expected limit.
  • 137768774 - Log message improvements:
    • Cleaned up transaction (request) logs.
    • Added more log messages where needed.
    • Moved transaction (request) log messages from console output to relevant log file.
    • Updated console logs to use a centralized logging function.
  • 138321133, 138320563 - Foundational internal change to quota buffer to enable future quota enhancements.

3.0.3

On Tuesday, July 23, we released the following fixes and enhancements to Edge Microgateway.

  • Logging enhancements : Existing runtime logs use a new eventLog() function that captures and logs runtime data in a consistent format. Log info includes:
    • Timestamp (ISO 8601: YYYY-MM-DDTHH:mm:ss.sssZ).
    • Log level (error, warn, or info).
    • Hostname - The requesting hostname from the request header.
    • Process ID - If you're running a cluster of Node.js processes, this is the ID of the process where the logging occurred.
    • Apigee organization name.
    • Environment name in the organization.
    • API proxy name.
    • Client IP address.
    • ClientId.
    • Correlation ID (not currently set).
    • Edge Microgateway component name.
    • Custom message - Some objects may print additional information that is passed to this error property.
    • Request method (if HTTP request).
    • Response status code (if HTTP request).
    • Error message.
    • Error code - If an object includes an error code, it is printed in this property.
    • Time taken.
    • Operating system end of line marker.

    Null property values result in empty brackets, [] .

    The following example shows the log format:

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

    (137770055)

  • Performance : API products were not being filtered based on environment. This issue has been fixed. (135038879)
  • Miscellaneous functional test integrations and code quality improvements.

۳.۰.۲

On Wednesday, July 3, 2019, we released the following fixes and enhancements to Edge Microgateway.

Code quality - Code has been reviewed for quality and code changes have been made to meet quality standards requested by users. We addressed code quality errors and warnings derived from JSHint . Some actual code errors were identified and repaired as a result. All Apigee Edge Microgateway modules were put through this process. See the June 28 and July 2 commits for microgateway-config , microgateway-core , microgateway-plugins ,and microgateway . All modules with code quality changes have been tested with internal tools that verify the execution of Edge Microgateway for customer use cases.

۳.۰.۱

On Friday, June 21, 2019, we released the following fixes and enhancements to Edge Microgateway.

  • 134834551 - Change the supported Node.js versions for Edge Microgateway
    (Node.js supported versions: 8 and 12; versions 7, 9, and 11 are experimental)
  • 134751883 - Edge Microgateway crashes when reloading under load
  • 134518428 - Products endpoint for Edge Microgateway returns 5XX if filter pattern is incorrect
  • 135113408 - Workers should restart if they terminate unexpectedly
  • 134945852 - tokenCacheSize is not used in oauth plug-in
  • 134947757 - set cacheTTL in oauth plug-in
  • 135445171 - gracePeriod calculation in OAuth is not correct
  • Use memored module provided with the Edge Microgateway installation
  • 135367906 - Security audit

Version 2.5.x

New features and enhancements v.2.5.x

(Fixed 2.5.38, 06/07/2019)

Improperly formatted JWTs can cause workers to crash when using token cache. Fixed in the Edge microgateway-plugins module. (b/134672029)

(Added 2.5.37) Add the CLI option edgemicro-cert -t .

The edgemicro cert -t option lets you specify an OAuth token to authenticate management APIs. See also Managing certificates .

(Added 2.5.35) Add support to debug Edge Microgateway using edgemicroctl .

You can use the mgdebug flag with edgemicroctl . See also Kubernetes integration tasks .

(Added 2.5.35) Enable a Windows build for edgemicroctl .

(Added 2.5.31) New edgemicro-auth/token API

A new edgemicro-auth/token API was added that allows you to pass the client/secret as a Base64 Encoded Basic Authorization header and the grant_type as a form parameter. See Obtaining bearer tokens directly .

(Fixed 2.5.31) Private configure does not respect token flag

An issue was fixed where configuring Edge Microgateway to use an OAuth2 access token on Edge for Private Cloud did not work properly (the token was not respected).

Docker: Support for using self-signed certificates

(Added 2.5.29) If you are using a Certificate Authority (CA) that's not trusted by default by Node.js, you can use the parameter NODE_EXTRA_CA_CERTS when you run a Docker container with Edge Microgateway. For details, see Using a CA that is not trusted by Node.js .

Docker: Support for TLS

(Added 2.5.29) Edge Microgateway running in a Docker container now supports TLS for incoming requests to the Edge Microgateway server (northbound requests) and for outgoing requests from Edge Microgateway to a target application (southbound requests).

The following examples explain in detail how to set up these TLS configurations:

In these examples, you will see how to use the container mount point /opt/apigee/.edgemicro to load the certificates, which are then referred to in the Edge Microgateway configuration file.

Docker: Support for request proxying

(Added 2.5.27) If you run Edge Microgateway in a Docker container, you can use these options to control proxy behavior when the microgateway is running behind a firewall:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

For details, see Run Edge Micro as a Docker container .

Docker: Updated plugin instructions

(Added 2.5.27) If you run Edge Microgateway in a Docker container, you now have two options for deploying plugins. One option, using a Docker mount point, is new. The other option existed previously, is basically unchanged; however, the Dockerfile has been updated. For details, refer to the following links:

New OAuth token support for KVM upgrade command

(Added 2.5.27) You can use an OAuth token with the upgradekvm command. For details, see Upgrading the KVM .

Segregating APIs in Edge Analytics

(Added 2.5.26) New analytics plugin flags allow you to segregate a specific API path so that it appears as a separate proxy in the Edge Analytics dashboards. For example, you can segregate health check APIs to avoid confusing them with actual API calls. For more information, see Excluding paths from analytics .

Configuring a local proxy

(Added 2.5.25) With a local proxy, you do not need to manually create a microgateway-aware proxy on Apigee Edge. Instead, the microgateway will use the local proxy's base path. For more information, see Using local proxy mode .

Using standalone mode

(Added 2.5.25) You can run Edge Microgateway disconnected completely from any Apigee Edge dependency. This scenario, called standalone mode, lets you run and test Edge Microgateway without an Internet connection., see Running Edge Microgateway in standalone mode .

Revoking keys

(Added 2.5.19) A new CLI command has been added that revokes the key and secret credentials for an Edge Microgateway configuration.

edgemicro revokekeys -o [organization] -e [environment] -u [username] -k [key] -s [secret]
For more information, see Revoke keys .

Docker support

(Added 2.5.19) You can now download the latest Edge Microgateway release as a Docker image :

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

Kubernetes support

(Added 2.5.19) You can deploy Edge Microgateway as a service or as a sidecar gateway in front of services deployed in a Kubernetes cluster. See: Integrate Edge Microgateway with Kubernetes overview .

Support for TCP nodelay option

(Added 2.5.16) A new configuration setting, nodelay , has been added to the Edge Micro configuration.

By default TCP connections use the Nagle algorithm to buffer data before sending it off. Setting nodelay to true , disables this behavior (data will immediately fire off data each time socket.write() is called). See also the Node.js documentation for more details.

To enable nodelay , edit the Edge Micro config file as follows:

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

New CLI options for Forever monitoring

(Added 2.5.12) New parameters have been added to the edgemicro forever command. These parameters let you specify the location of the forever.json file, and let you either start or stop the Forever background process. See also Forever monitoring

پارامتر توضیحات
-f, --file Specifies the location of the forever.json file.
-a, --action Either start or stop . The default is start.

مثال‌ها:

To start Forever:

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

To stop Forever:

edgemicro forever -a stop

JWT key rotation

A new feature was added that lets you rotate the public/private key pairs used to generate the JWT tokens used for OAuth security on Edge Microgateway. See Rotating JWT keys .

Filtering downloaded API proxies

By default, Edge Microgateway downloads all of the proxies in your Edge organization that start with the naming prefix "edgemicro_". You can change this default to download proxies whose names match a pattern. See Filtering downloaded proxies .

Specifying products without API proxies

In Apigee Edge, you can create an API product that does not contain any API proxies. This product configuration allows an API key associated with that product to work for with any proxy deployed in your organization. As of version 2.5.4, Edge Microgateway supports this product configuration.

Support for forever monitoring

Edge Microgateway has a forever.json file that you can configure to control how many times and with what intervals Edge Microgateway should be restarted. This file configures a service called forever-monitor, which manages Forever programmatically. See Forever monitoring .

Central management of the Edge Micro configuration file

If you run multiple Edge Microgateway instances, you may wish to manage their configurations from a single location. You can do this by specifying an HTTP endpoint where Edge Micro can download its configuration file. See Specifying a config file endpoint .

Support for forever CLI option

(Added 2.5.8) Use the edgemicro forever [package.json] command to specify the location of the forever.json file. Before the addition of this command, the config file had to be in the Edge Microgateway root directory.

برای مثال:

edgemicro forever ~/mydir/forever.json

Addition of configUrl option to reload command

(Added 2.5.8) You can now use the --configUrl or -u option with the edgemicro reload command.

Grace period for JWT time discepancies

(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: EMG - JWT token validated against both API Proxies and Resource URI in OAUTH ) JWT token validated against both API Proxies and Resource URI in OAUTH. This issue has been fixed.
  • (Apigee Community issue: Microgateway working even without Oauth token in header ) 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. For example:

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. For example:

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. For example:

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. For example:

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.

نسخه ۲.۱.۰

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 .

نسخه ۲.۰.۰

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.

نسخه ۱.۱.۲

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.

بهبود عملکرد

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.