Skip to main content

API Client และ API Key

รายละเอียดคอลัมน์ของ api_client, api_key

ภาพรวม

Domain นี้มี 2 ตารางใน schema public (จัดการด้วย Prisma) สำหรับให้ระบบภายนอกเรียกใช้ API ของแพลตฟอร์ม api_client คือตัวตนของระบบผู้เรียก (ถือ client id/secret) ส่วน api_key คือคีย์ที่ออกให้ client นั้น โดยผูกกับ LINE OA และองค์กรเฉพาะเจาะจง

ตาราง api_client

ColumnTypeNullableDefaultคำอธิบาย
idSERIALNOauto incrementPrimary key
nameTEXTNO-ชื่อระบบ/แอปพลิเคชันผู้เรียก
descriptionTEXTYES-คำอธิบายเพิ่มเติมของ client
client_idTEXTNO-รหัสประจำตัว client ที่ใช้ยืนยันตัวตน
client_secretTEXTNO-ความลับคู่กับ client_id
status"CommonStatus"NO'active'สถานะการใช้งาน (enum ร่วมของระบบ)
created_dateTIMESTAMPTZ(3)NOnow()วันเวลาที่สร้าง
created_byINTEGERNO0ผู้สร้างเรกคอร์ด
updated_dateTIMESTAMPTZ(3)YES-วันเวลาที่แก้ไขล่าสุด (Prisma @updatedAt)
updated_byINTEGERYES0ผู้แก้ไขล่าสุด
deleted_dateTIMESTAMPTZ(3)YES-วันเวลาที่ soft delete

ตาราง api_key

ColumnTypeNullableDefaultคำอธิบาย
idSERIALNOauto incrementPrimary key
titleTEXTNO-ชื่อเรียกคีย์ ให้ผู้ดูแลแยกออกว่าคีย์ใบไหนใช้ทำอะไร
keyTEXTNO-ค่าคีย์ที่ใช้เรียก API
api_client_idINTEGERNO-client ที่คีย์นี้ออกให้ (อ้างอิง api_client.id)
line_oa_idINTEGERNO-LINE OA ที่คีย์นี้เข้าถึงได้
organization_idINTEGERNO-องค์กรเจ้าของคีย์
status"CommonStatus"NO'active'สถานะการใช้งาน (enum ร่วมของระบบ)
created_dateTIMESTAMPTZ(3)NOnow()วันเวลาที่สร้าง
created_byINTEGERNO0ผู้สร้างเรกคอร์ด
updated_dateTIMESTAMPTZ(3)YES-วันเวลาที่แก้ไขล่าสุด (Prisma @updatedAt)
updated_byINTEGERYES0ผู้แก้ไขล่าสุด
deleted_dateTIMESTAMPTZ(3)YES-วันเวลาที่ soft delete

หมายเหตุ

  • Index: api_client มี index บน (client_id, client_secret, status) — ตรงกับ query ตอนยืนยันตัวตน client; api_key มี index บน (organization_id, line_oa_id, status)
  • ทั้งสองตารางไม่ประกาศ FK ระดับฐานข้อมูล — api_key.api_client_id อ้างถึง api_client.id เชิงตรรกะ และ line_oa_id / organization_id อ้างถึง line_oa / organization
  • status ใช้ PostgreSQL enum ชื่อ "CommonStatus" ที่ใช้ร่วมกันทั้งระบบ ค่าที่เป็นไปได้คือ active, inactive, processing, delete, completed, expired, draft, failed โดยเพิกถอนคีย์ได้ด้วยการเปลี่ยน status ให้ต่างจาก active
  • ทุกตารางใช้ soft delete ผ่าน deleted_date — ไม่ลบแถวจริง เพื่อให้ประวัติการเรียก API ยังสืบย้อนกลับไปหาคีย์ที่เคยใช้ได้