แอปพลิเคชัน
แอปพลิเคชันกำหนดทั้ง ขอบเขตบริการ และ เนมสเปซผู้ใช้ ผู้ใช้ ไคลเอนต์ และร้านค้าทุกรายการจะสังกัดแอปพลิเคชันหนึ่งรายการเสมอ ส่วนบัญชีจะอยู่ภายใต้แอปพลิเคชันและเป็นขอบเขตด้านการเรียกเก็บเงิน/ทีม
ลำดับชั้นจะสลับดังนี้:
Application → Account → Application → Account
นั่นหมายความว่าแต่ละแอปพลิเคชันคือเนมสเปซผู้ใช้ของตัวเอง อีเมลเดียวกันจึงอยู่ในหลายแอปพลิเคชันได้โดยไม่ชนกัน
ทำไมเรื่องนี้สำคัญ
- การสร้างผู้ใช้จะเกิดในแอปพลิเคชันแม่ของบัญชีเป้าหมาย
- Access token จะพกบริบทของแอปพลิเคชันและบัญชี โดยไม่ต้องมี namespace claim แยก
- การแยกขอบเขตถูกบังคับด้วยขอบเขตของแอปพลิเคชัน และสมาชิกภาพของบัญชี
ตัวอย่างลำดับชั้น
app_platform
└─ acc_alice
└─ app_taskflow
└─ acc_bob
app_platformเป็นเจ้าของผู้ใช้ Aliceapp_taskflowเป็นเจ้าของผู้ใช้ Bobacc_bobถูกเรียกเก็บเงินภายใต้app_taskflow
การดำเนินการของแอปพลิเคชัน
| Endpoint | คำอธิบาย |
|---|---|
POST /api/accounts/:account_id/applications | สร้างแอปพลิเคชันภายใต้บัญชี |
GET /api/accounts/:account_id/applications | แสดงรายการแอปพลิเคชันในบัญชี |
GET /api/applications/:application_id | ดึงรายละเอียดแอปพลิเคชัน |
PATCH /api/applications/:application_id | ปรับการตั้งค่าแอปพลิเคชัน |
DELETE /api/applications/:application_id | ลบแอปพลิเคชัน |
เคลมในโทเคน
โทเคนจะมีบริบทของแอปพลิเคชันและบัญชี:
{
"app": "app_root",
"acc": "acc_child456",
"uid": "uid_789",
"role": "member"
}