20.04.06 - บันทึกประจํารุ่นของ Apigee Edge สำหรับระบบคลาวด์สาธารณะ

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
info

ในวันที่ต่อไปนี้ เราได้เริ่มเผยแพร่การอัปเดตคอมโพเนนต์ไปยัง Apigee Edge สำหรับ Public Cloud

  • Message Processor: วันศุกร์ที่ 1 พฤษภาคม 2020
  • การจัดการ API: วันจันทร์ที่ 20 เมษายน 2020
  • การจัดการการสร้างรายได้: วันจันทร์ที่ 20 เมษายน 2020
  • การเผยแพร่แพตช์การจัดการ API: วันจันทร์ที่ 22 มิถุนายน 2020
  • การเผยแพร่แพตช์การจัดการการสร้างรายได้: วันจันทร์ที่ 6 กรกฎาคม 2020
  • การอัปเดตความปลอดภัยของเซิร์ฟเวอร์การจัดการ: วันจันทร์ที่ 24 สิงหาคม 2020
  • การเผยแพร่แพตช์สำหรับ Message Processor พร้อมการแก้ไขข้อบกพร่อง: วันพฤหัสบดีที่ 24 กันยายน 2020
  • การเผยแพร่แพตช์สำหรับ Message Processor พร้อมการแก้ไขข้อบกพร่อง: วันจันทร์ที่ 26 ตุลาคม 2020
  • การเผยแพร่แพตช์สำหรับ Message Processor พร้อมการแก้ไขข้อบกพร่อง: วันจันทร์ที่ 1 กุมภาพันธ์ 2021

ฟีเจอร์และการอัปเดตใหม่ๆ

ฟีเจอร์ใหม่และการอัปเดตในรุ่นนี้มีดังนี้

นโยบาย JWT

  • การเข้ารหัส JWT

    นโยบาย JWT ช่วยให้คุณสร้าง ยืนยัน และถอดรหัสโทเค็นที่เข้ารหัสได้ องค์ประกอบใหม่ ในนโยบายมีดังนี้

    • <Type> - ช่วยให้คุณตั้งค่าได้ว่าจะลงนามหรือเข้ารหัสโทเค็น
    • <EncryptionAlgorithms> - ให้คุณตั้งค่าอัลกอริทึมการเข้ารหัส <Key> และ <Content>

    (67165581)

  • การรองรับอัลกอริทึม PSS ในโทเค็นที่ลงนาม

    นโยบายสำหรับการสร้างและยืนยัน JWT และ JWS รองรับอัลกอริทึม PS256, PS384 และ PS512 แล้วตามที่อธิบายไว้ใน IETF RFC 7518 (119856499)

  • สร้างเวลาเริ่มต้นแบบสัมพัทธ์ของ JWT สำหรับโทเค็น

    เมื่อสร้าง JWT ด้วยนโยบาย GenerateJWT องค์ประกอบ <NotBefore> จะช่วยให้ คุณระบุเวลาที่สัมพันธ์กันระหว่างเวลาที่สร้างโทเค็นกับเวลาที่โทเค็นใช้งานได้ เช่น ค่า <NotBefore> 2 ชั่วโมงหมายความว่าโทเค็นจะใช้ได้ก็ต่อเมื่อ 2 ชั่วโมงหลังจากที่สร้างขึ้น คุณตั้งค่า<NotBefore>เวลาเป็น มิลลิวินาที (มส.), วินาที (วิ.), นาที (น.), ชั่วโมง (ชม.), วัน (ว.) หรือสัปดาห์ (ส.) ได้ (126261970)

  • อ้างอิง PublicKey/Certificate ใน VerifyJWT

    ในนโยบาย VerifyJWT องค์ประกอบ <PublicKey> / <Certificate> ช่วยให้คุณอ้างอิง ใบรับรองรูปแบบ PEM ที่ใช้เพื่อยืนยันลายเซ็น JWT ขาเข้าได้ เช่น

    <PublicKey>
      <Certificate ref='public.certificate_pem'/>
    </PublicKey>

    (132918033)

ฟังก์ชันเทมเพลตข้อความ

ต่อไปนี้คือ ฟังก์ชันเทมเพลตข้อความใหม่ที่พร้อมใช้งานในรุ่นนี้

  • firstnonull - แสดงผลค่าของอาร์กิวเมนต์แรก (ซ้ายสุด) ที่ไม่ใช่ Null (139698514)
  • xpath - ให้คุณใช้การแสดงออกของ XML Path (XPath) เพื่อแยกวิเคราะห์ตัวแปร XML (123246424)

นโยบาย AssignMessage: AssignVariable ช่วยให้คุณอ้างอิงเทมเพลตข้อความได้

ในนโยบาย AssignMessage องค์ประกอบ <AssignVariable> / <Template> อนุญาตให้ใช้แอตทริบิวต์ ref ซึ่งช่วยให้คุณแทรกเทมเพลตที่กำหนดไว้ล่วงหน้าในขณะรันไทม์ได้ ซึ่งสามารถ เปลี่ยนแปลงได้โดยไม่ต้องแก้ไขนโยบาย (118396082)

นามแฝงของใบรับรองหลายรายการ

เมื่อ กำหนดค่า TLS และใช้ใบรับรองหลายรายการในที่เก็บคีย์ โดยแต่ละรายการมี ชื่อแทนที่แตกต่างกัน Edge จะช่วยให้คุณอ้างอิงชื่อแทนของใบรับรองที่เฉพาะเจาะจงใน<SSLInfo><KeyAlias> การกำหนดค่าได้ หากต้องการเปิดใช้ลักษณะการทำงานที่อัปเดตนี้ ให้ตั้งค่าพร็อพเพอร์ตี้ HTTPClient.choose.alias.by.keyalias ใหม่ เป็น true ในไฟล์ http.properties ใน Message Processor ผู้ใช้ Edge สำหรับ Public Cloud ต้องติดต่อ ทีมสนับสนุนเพื่อเพิ่มพร็อพเพอร์ตี้นี้ (142141620)

นโยบาย JSONtoXML: ละเว้นการประกาศ XML, เยื้องเอาต์พุต

ตัวเลือกบูลีนใหม่ 2 รายการในนโยบาย JSONtoXML จะช่วยให้คุณควบคุมเอาต์พุต XML ได้มากขึ้น

  • <Options> <OmitXmlDeclaration> - เมื่อตั้งค่าเป็น true (ค่าเริ่มต้นคือ false) องค์ประกอบ <OmitXmlDeclaration> จะละเว้น การประกาศ XML <?xml version="1.0" encoding="UTF-8"?> เริ่มต้นที่นโยบายสร้างขึ้น
  • <Options> <Indent> - เมื่อตั้งค่าเป็น true (ค่าเริ่มต้นคือ false) องค์ประกอบ <Indent> จะเยื้องเอาต์พุต XML เช่น แทนที่จะเป็นเอาต์พุตนี้

    <Array><n>1</n><n>2</n><n>3</n></Array>

    องค์ประกอบการเยื้องจะสร้างผลลัพธ์ต่อไปนี้

    <Array>
     <n>1</n>
     <n>2</n>
     <n>3</n>
    </Array>

(65142394)

คำตอบสำหรับการสแกนโฮสต์เสมือน

หากมีการส่งคำขอไปยังที่อยู่ IP ของปลายทาง Apigee (ไม่ได้ระบุโฮสต์เสมือน) Edge จะแสดงการตอบกลับ HTTP 200 และเอกสาร HTML ว่างจากโฮสต์เสมือน Apigee เริ่มต้นที่เชื่อมโยงกับที่อยู่ IP นั้น เพื่อหลีกเลี่ยงความเข้าใจผิดว่าการตอบกลับดังกล่าวอาจแสดงถึงช่องโหว่ที่อาจถูกโจมตี ระบบจะตัดการเชื่อมต่อและไม่ส่งการตอบกลับ (140005396)

พร็อพเพอร์ตี้ของเซิร์ฟเวอร์เป้าหมายใน Trace เพื่อช่วยในการแก้ปัญหา

พร็อพเพอร์ตี้การติดตามใหม่ต่อไปนี้ช่วยแก้ปัญหาการเชื่อมต่อเป้าหมายโดย แสดงว่ามีการแคช HTTPClient สำหรับเซิร์ฟเวอร์เป้าหมายหรือไม่ isHttpClientCached และ isFromClientPool (140574604)

นโยบาย MessageLogging: ข้อความ Syslog

ในนโยบายการบันทึกข้อความ องค์ประกอบใหม่ <Syslog> / <PayloadOnly> (บูลีน) ช่วยให้คุณกำหนดได้ว่าจะมีการเพิ่มข้อความใดๆ ไว้หน้า <Message> ที่คุณกำหนดโดยอัตโนมัติหรือไม่ หากตั้งค่า <PayloadOnly> เป็นจริง ระบบจะไม่เพิ่มข้อความใดๆ นำหน้า คำจำกัดความของข้อความ (ไม่ว่าการตั้งค่า <FormatMessage> จะเป็นอย่างไร) หากตั้งค่าเป็น "เท็จ" (ค่าเริ่มต้น) <FormatMessage> จะกำหนดสิ่งที่นำหน้า ข้อความในบันทึก (68722102)

การหมดอายุของนโยบายแคช

องค์ประกอบ <TimeoutInSeconds> หมดอายุใหม่ใน นโยบาย ResponseCache และนโยบาย PopulateCache จะทำงานตามที่ตั้งใจไว้สำหรับองค์ประกอบ <TimeoutInSecs> ที่มีอยู่ ตั้งแต่แรก โปรดใช้องค์ประกอบใหม่ องค์ประกอบ <TimeoutInSecs> ที่เลิกใช้งานแล้วยังคงมีอยู่เพื่อความเข้ากันได้แบบย้อนหลัง หากกำหนดค่าทั้งองค์ประกอบ <TimeoutInSecs> และ <TimeoutInSeconds> Edge จะใช้ <TimeoutInSeconds> (119172893)

ตัวแปรโฟลว์ virtualhost.aliases.values

ตัวแปรvirtualhost.aliases.valuesโฟลว์ข้อความแบบอ่านอย่างเดียวใหม่ จะแสดงผลอาร์เรย์ที่จัดรูปแบบ JSON ของนามแฝงทั้งหมดที่กำหนดให้กับ โฮสต์เสมือนที่เรียกใช้ในคำขอขาเข้า (128453178)

พารามิเตอร์ใหม่เพื่อให้แน่ใจว่าการลบการแก้ไขพร็อกซี

มีการเพิ่มforceพารามิเตอร์การค้นหาใหม่ลงใน ลบการแก้ไขพร็อกซี API ในกรณีที่การแก้ไขแสดงอยู่ใน List API Proxies API แต่ค้นหาไม่ได้จริง พารามิเตอร์นี้จะช่วยให้มั่นใจได้ว่าการแก้ไขพร็อกซีจะถูกลบ (111691721)

เช่น

DELETE /v1/organizations/myorg/apis/myproxy/revisions/2?force=true

ตัวแปรโฟลว์ใหม่สำหรับค่าแทนชื่อโฮสต์เสมือน

ตัวแปรโฟลว์ข้อความ virtualhost.aliases.values แบบอ่านอย่างเดียวใหม่จะแสดงผลอาร์เรย์ที่จัดรูปแบบ JSON ของนามแฝงทั้งหมดที่กำหนดให้กับโฮสต์เสมือนที่เรียกใช้ในคำขอขาเข้า (128453178)

แก้ไขข้อบกพร่องแล้ว

เราได้แก้ไขข้อบกพร่องต่อไปนี้ในรุ่นนี้ รายการนี้มีไว้สำหรับผู้ใช้ที่ต้องการตรวจสอบว่า คำขอรับการสนับสนุนได้รับการแก้ไขแล้วหรือไม่เป็นหลัก ไม่ได้ออกแบบมาเพื่อให้ข้อมูลโดยละเอียดแก่ผู้ใช้ทุกคน

รหัสปัญหา ชื่อคอมโพเนนต์ คำอธิบาย
143313772 Message Processor

แก้ไขปัญหาในนโยบาย SpikeArrest ที่เกิดขึ้นเมื่อเปิดใช้ UseEffectiveCount และมีการรีสตาร์ทแบบต่อเนื่อง

(ในการเผยแพร่แพตช์วันที่ 1/2/21)

154428338 รันไทม์ API

Message Processor โหลดสภาพแวดล้อมไม่สำเร็จเมื่อกำหนดค่าที่เก็บคีย์ ด้วยชื่อหรือนามแฝงที่คล้ายกัน

เราได้แก้ไขความขัดแย้งในการค้นหา Regex เมื่อโหลดที่เก็บคีย์ที่มีรูปแบบการตั้งชื่อคล้ายกัน แล้ว ซึ่งทำให้ Message Processor โหลดสภาพแวดล้อมที่เชื่อมโยงกับที่เก็บคีย์ไม่สำเร็จ หรือเริ่มทำงานไม่สำเร็จเมื่อมีการส่งคืนที่เก็บคีย์ที่ขัดแย้งกันหลายรายการในระหว่างการค้นหา

149507805 การจัดการ API

เปิดใช้การติดตั้งใช้งาน/การกำหนดค่าผ่าน HTTP สำหรับเซิร์ฟเวอร์ MGMT ที่ใช้งานจริงทั้งหมด

การอัปเดตการกำหนดค่าจะเกิดขึ้นผ่าน HTTP แทน RPC ซึ่งจะช่วยปรับปรุงความน่าเชื่อถือ และการบันทึกข้อผิดพลาด

137217974 การจัดการ API

เมื่อกำหนดค่า MP ผ่าน HTTP ให้เผยแพร่ข้อผิดพลาดอย่างถูกต้องเมื่อ เซิร์ฟเวอร์เป้าหมายยังคงใช้งานอยู่

เนื่องจากการปรับปรุงความน่าเชื่อถือที่เปิดตัวในปัญหา 149507805 ระบบจึงรายงานข้อผิดพลาดในการตอบกลับจากการลบเซิร์ฟเวอร์เป้าหมายอย่างไม่ถูกต้องเป็น สถานะ 200 (สำเร็จ) เมื่อการลบไม่สำเร็จ การแก้ไขนี้จะทำให้ระบบรายงานข้อผิดพลาดในการตอบกลับ เป็นสถานะ 400 อย่างถูกต้องหากการลบไม่สำเร็จ โปรดทราบว่าการลบเซิร์ฟเวอร์เป้าหมายอาจล้มเหลวหากเซิร์ฟเวอร์เป้าหมาย อ้างอิงโดยพร็อกซีที่กําลังใช้งานอยู่ ก่อนลบเซิร์ฟเวอร์เป้าหมาย ให้ตรวจสอบว่าไม่มีพร็อกซี API ที่ใช้งานอยู่ในปัจจุบันอ้างอิงเซิร์ฟเวอร์เป้าหมาย

69765558 การจัดการ API

API สิทธิ์ของทรัพยากรแสดงผล 403

149545506 การจัดการ API

แก้ไขปัญหาด้านความปลอดภัยใน API สำหรับการเพิ่มผู้ใช้ไปยังบทบาท

131246911 การจัดการ API สำหรับอีเมลนักพัฒนาแอปในพอร์ทัล ให้เปิดใช้การรองรับโดเมนใหม่กว่า เช่น *.games, *.asia

แก้ไขปัญหาที่ชื่อโดเมนบางชื่อ เช่น *.games, *.asia และ *.africa ทำให้การสร้างนักพัฒนาแอปใน Edge ล้มเหลว เนื่องจากโปรแกรมตรวจสอบโดเมนไม่รู้จักชื่อโดเมนเหล่านั้น ตอนนี้ Edge จะตรวจสอบเฉพาะรูปแบบอีเมลว่าถูกต้อง (มีสัญลักษณ์ "@") หรือไม่เท่านั้น

142217645 การจัดการ API

PUT v1/o/{org_name}/apiproducts/{product_name} ไม่ได้นำ โควต้าออก

162299668 เซิร์ฟเวอร์การจัดการ

แก้ไขช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้นแล้ว

135856488 เซิร์ฟเวอร์การจัดการ

UI ช้า

139407965 เซิร์ฟเวอร์การจัดการ

แก้ไขปัญหาที่อนุญาตให้สร้าง KVM โดยไม่มีชื่อ

112488235 เซิร์ฟเวอร์การจัดการ

เพิ่มการตรวจสอบเพื่อป้องกันไม่ให้สร้างโฮสต์เสมือนที่มี ช่องว่างในชื่อ อักขระช่องว่างใช้ในชื่อโฮสต์เสมือนไม่ได้

132433193 การจัดการการสร้างรายได้

แก้ไขปัญหาเกี่ยวกับการอัปเดตแอปพลิเคชันแล้ว

152514520 การจัดการการสร้างรายได้

แก้ไขปัญหาเกี่ยวกับการเรียก Management API เพื่อลบเอนทิตีแล้ว

128450374 รันไทม์ API

นโยบาย JWT/JWS ควรคำนึงถึง IgnoreUnresolvedVariables - ทิ้งข้อผิดพลาดที่เหมาะสม หากไม่ได้กำหนดตัวแปร

135354517 รันไทม์ API

องค์กรล้มเหลวในรุ่น Release_190301 เนื่องจากการบังคับใช้ประเภทข้อมูล "String" อย่างเข้มงวดใน BasicAuth

131763486 รันไทม์ API

ควรละเว้นเส้นทางฐานของโฟลว์ที่แชร์ในเครื่องมือประมวลผลข้อความ

135972575 รันไทม์ API

Private Cloud 4.19.01 แสดงลักษณะการทำงานที่แตกต่างกันในระหว่างการติดตั้งใช้งานที่มี override=true&delay=300

การแก้ไขนี้จะรวมอยู่ในการเปิดตัว Edge สำหรับ Private Cloud ในอนาคต

141601836 รันไทม์ API

แก้ไขชื่อโฮสต์ในข้อความในบันทึก

116834109 รันไทม์ API

ค่าที่ไม่ถูกต้องสำหรับตัวแปร failed, fault.cause และ fault.name ใน Trace

130653816 รันไทม์ API

ข้อผิดพลาด 404 เป็นระยะๆ สำหรับการเข้าชมรันไทม์

132777537 รันไทม์ API

นโยบาย ExtractVariables ไม่ทำงานสำหรับ JSONPath ที่ถูกต้อง

133713555 รันไทม์ API

เราเตอร์ที่ขอบเปลี่ยนส่วนหัววันที่

133253435 รันไทม์ API

การใช้งาน CPU สูงโดยเธรด Apigee-Main

111553402 รันไทม์ API

ผลิตภัณฑ์ API ที่มีอักขระที่ไม่ถูกต้องในเส้นทางจะไม่ได้รับการตรวจจับจนกว่าจะถึงรันไทม์

126240341 รันไทม์ API

ปรับปรุงข้อความทั่วไป "สร้างไม่สำเร็จ" เมื่อนโยบาย GenerateJWT ล้มเหลว

119854424 รันไทม์ API

LoadBalancer ที่มีเซิร์ฟเวอร์เป้าหมายเดียวไม่ควรใช้งานไม่ได้เมื่อการเชื่อมต่อล้มเหลว

129275412 รันไทม์ API

เพิ่มส่วนหัว HTTP ลงในโฮสต์เสมือนสำรองสำหรับการสแกน IP ทั่วไป

129351507 รันไทม์ API

นโยบาย BasicAuthentication ถอดรหัสไม่ได้เมื่อรหัสผ่านมีเครื่องหมายโคลอน

65852874 รันไทม์ API

ตรวจสอบว่า HTTPClient ไม่พยายามนำการเชื่อมต่อที่มีส่วนหัวการตอบกลับ Connection:close กลับมาใช้ซ้ำ

138951646 รันไทม์ API

การจำกัดเวลาไม่ทำงานใน JavaScript สำหรับ httpClient

139051927 รันไทม์ API

เวลาในการตอบสนองของการประมวลผลคำขอสูง

132443137 รันไทม์ API

เปลี่ยนลักษณะการทำงานของตัวประมวลผลข้อความเพื่อจัดการกับส่วนหัว x-apigee ภายในที่ไม่รู้จัก

138310777 รันไทม์ API

การเรียกใช้การทำให้โฟลว์ที่แชร์ใช้งานได้จะแสดงผล 504 แบบสุ่ม

67170148 รันไทม์ API

ความแตกต่างระหว่างเวลาที่ผ่านไปและเวลาที่ใช้ใน ServiceCallouts

124049692 รันไทม์ API

NullPointerException ในนโยบาย VerifyApiKey

135031506 รันไทม์ API

เพิ่มข้อความในบันทึกสำหรับรูปแบบคีย์ JWT ที่ไม่คาดคิด

137312366 รันไทม์ API

การตรวจสอบเนื้อหาตามส่วนหัว Content-Type

109871907 รันไทม์ API

การดำเนินการ ServiceCallout ล่าช้าโดยไม่มีองค์ประกอบ Response

143722867 รันไทม์ API

JWT ต้องบังคับใช้ขีดจํากัดที่กําหนดค่าได้สําหรับจํานวนการวนซ้ำของ PBKDF2

144286363 การติดตามแบบไฮบริด

มาสก์การแก้ไขข้อบกพร่องใน env.json ไม่ได้มาสก์ข้อมูลการตอบกลับใน Apigee Hybrid

147769812 รันไทม์ API

ประกาศพร็อพเพอร์ตี้แฮช OAuth เป็นแบบเปลี่ยนแปลงได้ในฟีเจอร์แฟล็ก

149037704 รันไทม์ API

แก้ไขปัญหาที่ค่าที่กำหนดให้กับตัวแปรโฟลว์ proxy.url อาจแสดงนามแฝงโฮสต์ที่ไม่ถูกต้อง

148972262 รันไทม์ API

DecodeJWS จะส่งเพย์โหลดไปยังตัวแปรบริบทในรูปแบบที่ใช้ไม่ได้

116580622 รันไทม์ API

การตอบสนองที่ไม่สอดคล้องกัน

149739904 รันไทม์ API

การมาสก์ข้อมูลสำหรับส่วนหัว HTTP ควรไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

149431545 รันไทม์ API

GenerateJWT และ VerifyJWT ที่มี SecretKey จะไม่ยอมรับการเข้ารหัสใดๆ ยกเว้น UTF-8

155448596 API Management-Patch

ไม่มีสิทธิ์ในบทบาท apimonitoringadmin เริ่มต้น

มีการเพิ่มสิทธิ์ที่ขาดหายไปลงในบทบาท apimonitoringadmin

158592076 API Management-Patch

ไม่มีสิทธิ์ในบทบาท devadmin เริ่มต้น

มีการเพิ่มสิทธิ์ที่ขาดหายไปให้กับบทบาท devadmin

152856311 API Management-Patch

การตรวจสอบเพื่อปฏิเสธใบรับรอง PKCS7 และ DER ในที่เก็บคีย์และที่เก็บที่เชื่อถือได้ ระหว่างการสร้างและอัปเดตโฮสต์เสมือน

ในระหว่างการสร้างหรืออัปเดตโฮสต์เสมือน ระบบจะบังคับใช้การตรวจสอบเพื่อ ดูว่าใบรับรองที่เพิ่มในนามแฝงของที่เก็บคีย์และที่เก็บที่เชื่อถือได้อยู่ในรูปแบบ PEM และไม่ได้อยู่ในรูปแบบที่ไม่รองรับ เช่น PKCS7, DER และอื่นๆ

155478545 การจัดการการสร้างรายได้ - แพตช์

แก้ไขปัญหาเกี่ยวกับการอัปเดตสถานะการแจ้งเตือนทางอีเมลแล้ว

154121499 การจัดการการสร้างรายได้ - แพตช์

แก้ไขปัญหาที่ /mint/org/orgname/delete-org-data API แสดงข้อผิดพลาดสถานะ 404

152356393 การจัดการการสร้างรายได้ - แพตช์

เราได้ผ่อนปรนการตรวจสอบความยาวของชื่อบริษัทสำหรับการสร้างรายได้ และการสร้างบริษัท

138542921 การจัดการการสร้างรายได้ - แพตช์

แก้ไขปัญหาที่การสร้างแพ็กเกจราคาล้มเหลวเนื่องจากมีแอตทริบิวต์ที่กำหนดเองหลายรายการ ในแพ็กเกจผลิตภัณฑ์

150948843 การจัดการการสร้างรายได้ - แพตช์

แก้ไขปัญหาที่ API การสร้างรายได้ /sync-developers ทำให้เกิดข้อขัดแย้งในการคงอยู่

155443118 การจัดการการสร้างรายได้ - แพตช์

นำฟิลด์ jsonMailProperties ออกแล้ว

150948843 การจัดการการสร้างรายได้ - แพตช์

แก้ไขปัญหาที่ API การสร้างรายได้ /sync-developers ทำให้เกิดข้อขัดแย้งในการคงอยู่