Skip to content

v0.3.1 — core.tenancy.bind_tenant()

Choose a tag to compare

@monthop-gmail monthop-gmail released this 19 Aug 12:44
· 60 commits to main since this release
a10a1b0

จาก care (issue #10 / care#4) — ไม่มี breaking change (set_tenant() ยังอยู่ · เพิ่ม API ใหม่)

  • core.tenancy.bind_tenant() / unbind_tenant() — ผูก tenant กับ session แล้วตั้ง GUC
    ใหม่อัตโนมัติทุก transaction (ผ่าน event after_begin) จึง รอดการ commit กลางทาง ·
    set_tenant() เดิมตั้ง GUC แค่ transaction เดียว (หายเมื่อ commit) → โค้ดที่ commit แล้วอ่านต่อ
    หรือ background job ที่วนหลาย tenant เห็น 0 แถวแบบเงียบ ๆ (RLS deny-by-default) · care เจอตอน
    เปิด RLS: เทส 42 ตัวกลายเป็น "ไม่พบผู้ป่วย"
    • เก็บ binding บน session.info (ไม่ใช่ id(session) — id ถูกใช้ซ้ำหลัง GC ทำให้ session
      ใหม่รับ binding ของ session ที่ตายแล้ว · gotcha ที่ care เจอตอนเขียน workaround)
    • get_scope เปลี่ยนมาใช้ bind_tenant() → RLS ของตารางโดเมนกรองถูกแม้ service layer commit กลาง request
  • MODULE_GUIDE §9: เพิ่มวิธีใช้ bind_tenant + คำเตือน footgun ของ set_tenant + pattern ให้
    background job discover tenant จากตาราง tenant (control plane ไม่มี RLS) ไม่ใช่ตารางโดเมนที่มี RLS

v0.3.0 — 2026-08-19


เกิดจากรายงานของ care (#10 · PR #11)
· app repo ที่ pin v0.3.0 อยู่อัปเป็น v0.3.1 ได้เลย ไม่ต้องแก้โค้ดเดิม (set_tenant() ยังอยู่ครบ)