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
| Column | Type | Nullable | Default | คำอธิบาย |
|---|---|---|---|---|
id | SERIAL | NO | auto increment | Primary key |
name | TEXT | NO | - | ชื่อระบบ/แอปพลิเคชันผู้เรียก |
description | TEXT | YES | - | คำอธิบายเพิ่มเติมของ client |
client_id | TEXT | NO | - | รหัสประจำตัว client ที่ใช้ยืนยันตัวตน |
client_secret | TEXT | NO | - | ความลับคู่กับ client_id |
status | "CommonStatus" | NO | 'active' | สถานะการใช้งาน (enum ร่วมของระบบ) |
created_date | TIMESTAMPTZ(3) | NO | now() | วันเวลาที่สร้าง |
created_by | INTEGER | NO | 0 | ผู้สร้างเรกคอร์ด |
updated_date | TIMESTAMPTZ(3) | YES | - | วันเวลาที่แก้ไขล่าสุด (Prisma @updatedAt) |
updated_by | INTEGER | YES | 0 | ผู้แก้ไขล่าสุด |
deleted_date | TIMESTAMPTZ(3) | YES | - | วันเวลาที่ soft delete |
ตาราง api_key
| Column | Type | Nullable | Default | คำอธิบาย |
|---|---|---|---|---|
id | SERIAL | NO | auto increment | Primary key |
title | TEXT | NO | - | ชื่อเรียกคีย์ ให้ผู้ดูแลแยกออกว่าคีย์ใบไหนใช้ทำอะไร |
key | TEXT | NO | - | ค่าคีย์ที่ใช้เรียก API |
api_client_id | INTEGER | NO | - | client ที่คีย์นี้ออกให้ (อ้างอิง api_client.id) |
line_oa_id | INTEGER | NO | - | LINE OA ที่คีย์นี้เข้าถึงได้ |
organization_id | INTEGER | NO | - | องค์กรเจ้าของคีย์ |
status | "CommonStatus" | NO | 'active' | สถานะการใช้งาน (enum ร่วมของระบบ) |
created_date | TIMESTAMPTZ(3) | NO | now() | วันเวลาที่สร้าง |
created_by | INTEGER | NO | 0 | ผู้สร้างเรกคอร์ด |
updated_date | TIMESTAMPTZ(3) | YES | - | วันเวลาที่แก้ไขล่าสุด (Prisma @updatedAt) |
updated_by | INTEGER | YES | 0 | ผู้แก้ไขล่าสุด |
deleted_date | TIMESTAMPTZ(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 ยังสืบย้อนกลับไปหาคีย์ที่เคยใช้ได้