เวอร์ชัน
เวอร์ชัน 5.0.0
เวอร์ชันแรกหลัง v4 มีอะไรใหม่ อะไรที่ทำให้ของเดิมใช้ไม่ได้และต้องทำอย่างไร และปัญหาที่ทราบแล้ว
หน้านี้ยังเป็นฉบับร่างของเวอร์ชัน 5.0.0 เนื้อหาจะครบเมื่อออกเวอร์ชันจริง และหลังจากนั้นจะไม่แก้อีก
เวอร์ชัน 5.0.0 เป็นเวอร์ชันแรกที่มีเลขกำกับ อิมเมจทุกตัวในแพลตฟอร์มจะเป็นเวอร์ชันเดียวกันเสมอ และการเปลี่ยนเวอร์ชันทำผ่านคำสั่งที่ตรวจความพร้อมให้ก่อน ถ้าแพลตฟอร์มยังเป็น v4 ให้อ่านอัปเกรดจาก v4 ถ้าเป็นแพลตฟอร์มใหม่ ให้อ่านติดตั้งแพลตฟอร์มใหม่
สำหรับผู้ใช้แอป
- แพลตฟอร์มมีหน้าแรกที่
/คือ Portal คนที่ลงชื่อเข้าใช้เห็น งานของฉัน ค้นหาได้ และเปิดแอปได้จากที่เดียว หลังลงชื่อเข้าใช้ที่หน้าลงชื่อเข้าใช้โดยตรงจะมาที่ Portal แทนที่จะเป็น Drive - ปุ่ม ช่วยเหลือ ในการ์ดบัญชีจะเปิดคู่มือของเวอร์ชันที่แอปนั้นใช้อยู่ (เริ่มต้นใช้งาน) ถ้าหน้าที่เปิดอยู่เก่ากว่าแพลตฟอร์ม จะมีแถบแจ้งพร้อมปุ่ม โหลดใหม่ แถบนี้ไม่บังการใช้งาน
- อยู่ในระบบได้นานขึ้น token มีอายุหนึ่งวัน และ refresh ต่อได้ถึง 30 วัน เมื่อออกจากระบบ จะออกจากทุกแอปพร้อมกัน
- Drive มีแท็บ กิจกรรม มุมมองแบบแกลเลอรี และหน้าดูตัวอย่างไฟล์ที่มีปุ่ม คัดลอกลิงก์
- แผนที่เปลี่ยนมาใช้ MapLibre เบราว์เซอร์ต้องรองรับ WebGL และต้องเข้าถึงเซิร์ฟเวอร์ฟอนต์สาธารณะได้ ป้ายชื่อบนแผนที่จึงจะแสดง
- แอปเลิกใช้ service worker แล้ว แท็บที่เปิดค้างไว้อาจโหลดหน้าใหม่เองหนึ่งครั้ง
สำหรับผู้ดูแลระบบ
- Configuration กลายเป็นศูนย์ดูแลระบบ มีหน้า ภาพรวม ที่บอกว่ามีอะไรต้องดูแลบ้าง (ศูนย์ดูแลระบบของ Configuration)
- หน้า แอป เป็น Marketplace สำหรับติดตั้งและถอนแอป ผู้ใช้ต้องมีสิทธิ์ สามารถจัดการ แอป ซึ่งระบบให้บทบาท
adminเองหนึ่งครั้ง (แอปและ Marketplace) - การเข้าถึงสาธารณะ เป็นสวิตช์ใหม่ที่ปิดอยู่ตั้งแต่แรก เมื่อเปิด คนที่ไม่ได้ลงชื่อเข้าใช้อ่านรายการที่แชร์เป็น สาธารณะ ได้ (การเข้าถึงสาธารณะ)
- ผู้ดูแลที่มีสิทธิ์ แก้หน้า Portal วางบล็อก ตรวจร่าง และเผยแพร่หน้าแรกได้ (แก้หน้า Portal) ระบบให้บทบาท
adminเองหนึ่งครั้ง - หน้า ระบบ เป็นหน้าใหม่ แสดงทุกโหนดพร้อมเวอร์ชันที่ใช้ ทุก migration และผลการตรวจของแต่ละโหนด (ระบบ)
- Log Monitoring กลายเป็นบันทึกการตรวจสอบที่แก้ย้อนหลังไม่ได้ และเก็บไว้ 365 วัน ผู้ที่จะอ่านได้ต้องมีสิทธิ์
viewAuditLogส่วนตัวเลขการใช้งานต้องมีสิทธิ์viewUsageตอนนี้หน้า บทบาท ยังไม่มีช่องให้ติ๊กสิทธิ์ทั้งสองนี้
สำหรับผู้ติดตั้ง
- คำสั่ง
awhereใช้ติดตั้ง อัปเกรด และย้อนกลับ ทุกขั้นตอนจะตรวจก่อนแก้อะไร (ติดตั้งแพลตฟอร์มใหม่, อัปเกรด) ใช้ได้ทั้งบน Docker และ Apple Container - migration คือการแก้ข้อมูลที่มีอยู่แล้วแบบทำครั้งเดียว แต่ละฐานข้อมูลจะบันทึกไว้ว่ารัน migration ไหนไปแล้ว เวอร์ชันนี้มี migration เจ็ดตัว ทุกตัวเป็นแบบ
expandจึงย้อนกลับหนึ่งเวอร์ชันได้ - ทุกโหนดตรวจตัวเองด้วย Preflight ก่อนเริ่มทำงาน และบอกสถานะที่
/liveกับ/readyบนพอร์ต 3001 - มีคอนเทนเนอร์ใหม่
portalเป็นแอปหลักที่ทำหน้าแรก ถ้าใช้ proxy ของตัวเอง ต้องส่งทุก path ที่ไม่มีใครรับ รวมถึง/ไปที่คอนเทนเนอร์นี้ (ถ้าใช้ proxy ของคุณเอง) - stream ของกิจกรรมใน JetStream เก็บได้ไม่เกิน 2 GiB และไม่เกิน 14 วัน (สิ่งที่ต้องมี)
- แพลตฟอร์มใหม่ใช้งานได้ทันที โหนดจะสร้างบทบาท
adminกับuserแอปหลัก และแผนที่เริ่มต้นให้เอง ส่วนawhere setupจะสร้างผู้ดูแลระบบคนแรกด้วยรหัสผ่านที่คุณตั้งหรือที่ระบบสร้างให้ ระบบไม่มีรหัสผ่านตั้งต้น (ติดตั้งแพลตฟอร์มใหม่)
การเปลี่ยนแปลงที่ทำให้ของเดิมใช้ไม่ได้
| สิ่งที่เปลี่ยน | สิ่งที่ต้องทำ |
|---|---|
select รับได้แค่ชื่อคอลัมน์ที่กำหนดค่าเป็น 1 หรือ 0 ถ้าใส่ alias นิพจน์ $$ROOT หรือคอลัมน์ที่ซ่อนไว้ ระบบจะตัดทิ้งไปเฉย ๆ โดยไม่แจ้งข้อผิดพลาด | ระบุเฉพาะชื่อคอลัมน์ที่ต้องการ |
การยืนยันตัวตนใช้ได้แค่ Bearer token หรือ API key ระบบไม่อ่าน header X-Auth-* และเลิกรองรับ HTTP Basic | ส่ง token หรือ API key ใน header และตั้ง proxy ให้ลบ X-Auth-* |
ไม่มี /api/image/item, /api/image/attachment และ /api/image/thumbnail แล้ว และระบบไม่รับ token ที่ใส่มาใน URL | ใช้ /api/file/<id>/content, /download และ /thumbnail/<width> โดยส่ง credential ใน header หรือใช้ signed link จาก POST /api/file/links |
actions/aggregate รับได้น้อยลง ระบบจะปฏิเสธ $out, $merge, $function, $accumulator, $where, $unionWith, $graphLookup และ $facet ส่วน $lookup ใช้ได้เฉพาะความสัมพันธ์ที่รายการประกาศไว้ | เขียน pipeline ใหม่ |
| ไทล์แผนที่ตรวจสิทธิ์อ่านรายการทุกครั้ง เดิมใครที่มี token หรือ API key ที่ใช้ได้ก็ได้ไทล์ของทุกรายการ ตอนนี้ได้ 404 ถ้าอ่านรายการนั้นไม่ได้ และ web map จะไม่วาดชั้นข้อมูลที่อ่านไม่ได้ | ตรวจว่าโปรแกรมที่ดึงไทล์ใช้บัญชีหรือ key ที่อ่านรายการนั้นได้ |
| เมื่อผู้ดูแลเปิดการเข้าถึงสาธารณะ ระดับ สาธารณะ ในหน้าต่างแชร์จะหมายถึงทุกคน ไม่ใช่แค่คนที่ลงชื่อเข้าใช้ รายการที่เคยแชร์เป็น สาธารณะ ไว้จึงเปิดให้ทุกคนอ่านด้วย สวิตช์ปิดอยู่หลังอัปเกรด | อ่านรายการที่ระบบแสดงก่อนเปิด และให้เจ้าของเปลี่ยนรายการที่ไม่ควรเปิดเป็น ภายใน (การเข้าถึงสาธารณะ) |
ฐานข้อมูลตั้งด้วย URL (DATASTORE_URL และอีกสามตัว) ตัวแปรแบบแยกส่วนของ v4 ใช้ไม่ได้แล้ว และต้องตั้ง PLATFORM_URL ให้ core-services | ตั้งค่าโหนด |
| ต้องมี NATS ที่เปิด JetStream, MongoDB 4.2 ขึ้นไป และฐานข้อมูล content ต้องเป็น replica set | สิ่งที่ต้องมี |
| สิทธิ์อ่านบันทึกการตรวจสอบไม่ได้ตามมาจาก v4 | ให้สิทธิ์ viewAuditLog และ viewUsage กับบทบาทที่ต้องใช้ (อัปเกรดจาก v4) |
ตอนเริ่มระบบครั้งแรก ระบบจะคัดลอก log เก่า แล้วลบกิจกรรมที่เก่ากว่า AUDIT_RETENTION_DAYS (365 วัน) | ถ้าต้องการเก็บนานกว่านั้น ให้ตั้งค่านี้ก่อนเริ่มระบบครั้งแรก (อัปเกรดจาก v4) |
เวอร์ชันนี้ไม่มี migration แบบ contract จึงย้อนกลับจาก 5.x ที่ใหม่กว่ามาเป็น 5.0.0 ได้ ส่วนการกลับไป v4 ต้องกู้คืนจากข้อมูลที่สำรองไว้ (อัปเกรดจาก v4)
ปัญหาที่ทราบแล้ว
ไม่มีข้อไหนกระทบการติดตั้งหรืออัปเกรดแพลตฟอร์ม
- ถ้า OAuth client ของผู้ใช้คนหนึ่งใช้ id ซ้ำกับแอป จะติดตั้งหรือย้ายแอปนั้นไม่ได้ และยังไม่มีทางแก้ เพราะผู้ดูแลระบบมองไม่เห็น client นั้น
- นำเข้าข้อมูลไปยังตารางใหม่ในฐานข้อมูลที่แชร์ให้กลุ่มไม่สำเร็จ และขึ้นข้อความ
"_id" is required - คนจัดการ ที่ไม่ใช่เจ้าของเห็นปุ่ม ลบถาวร แต่กดแล้วไม่มีอะไรหายไป ผู้อ่าน กด ส่งข้อมูล ในฟอร์มได้แต่จะได้ 403 ข้อจำกัดของ API key บันทึกได้แต่ไม่มีผลจริง และการส่งออก CSV จะแสดงค่า false หรือ 0 เป็นช่องว่าง
- บางหน้าจอยังแสดงคีย์ดิบและข้อความที่ยังไม่แปล และมีบางปุ่มที่กดแล้วไม่ทำอะไร
- ยังไม่มีเครื่องมือสำรองและกู้คืนทั้งแพลตฟอร์ม ผู้ติดตั้งต้องสำรองข้อมูลเอง