คู่มือ aWhere
เวอร์ชัน

เวอร์ชัน 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 เป็นช่องว่าง
  • บางหน้าจอยังแสดงคีย์ดิบและข้อความที่ยังไม่แปล และมีบางปุ่มที่กดแล้วไม่ทำอะไร
  • ยังไม่มีเครื่องมือสำรองและกู้คืนทั้งแพลตฟอร์ม ผู้ติดตั้งต้องสำรองข้อมูลเอง

ในหน้านี้