# Branch Scope Probe Account

บัญชี probe นี้ใช้สำหรับตรวจ `branch scope isolation` หลัง deploy แบบ read-only

ดูคู่กับ:

- [Smoke / UAT Runbook](./smoke-uat-runbook.md)
- [CI / Pipeline Gate](./ci-pipeline-gate.md)

## Goal

ให้มี user 1 บัญชีที่:

- login ได้จริง
- มีสิทธิ์หน้า booking / queue / job details
- ถูกจำกัด `branch_scope = assigned`
- มี `allowed branches` ชัดเจน

บัญชีนี้เหมาะสำหรับ `staging` หรือ `production` เพื่อใช้กับ:

- `scripts/post_deploy_spot_check.ps1`
- `scripts/ci_post_deploy_spot_check.ps1`

## Prepare / Update Account

ใช้สคริปต์นี้:

```powershell
powershell -ExecutionPolicy Bypass -File scripts\ensure_branch_scope_probe_account.ps1 `
  -BaseUrl "http://127.0.0.1/CCW" `
  -Username "admin" `
  -Password "admin123" `
  -ProbeUsername "branch_probe" `
  -ProbePassword "branchprobe123" `
  -AllowedBranches "สาขาศรีนครินทร์"
```

สคริปต์จะ:

- login ด้วย admin
- สร้างหรืออัปเดต employee ตาม `ProbeUsername`
- ตั้ง `branch_scope = assigned`
- เปิดใช้งาน account
- ตั้งสาขาที่อนุญาตตาม `AllowedBranches`

## Recommended Settings

- position: `Administrator` หรือ role ที่มีสิทธิ์ `booking + queue`
- default start page: ปล่อย `[auto]` ได้
- allowed branches: ใส่เฉพาะสาขาที่ต้องการใช้เป็น probe

## Verify Manually

หลังสร้างแล้ว ควรลอง:

1. login ด้วยบัญชี probe
2. เปิด `booking.php`
3. ยืนยันว่าช่องเลือกสาขาเห็นเฉพาะสาขาที่กำหนด
4. เปิด `queue.php`
5. ยืนยันว่าไม่เห็นงานของสาขาอื่น

## Use With Post-Deploy Spot Check

```powershell
powershell -ExecutionPolicy Bypass -File scripts\post_deploy_spot_check.ps1 `
  -RestrictedUsername "branch_probe" `
  -RestrictedPassword "branchprobe123" `
  -RestrictedAllowedBranches "สาขาศรีนครินทร์"
```

ผลที่ควรเห็น:

- `restricted_branch_options: สาขาศรีนครินทร์`
- `branch_scope_allowed_probe: passed:<order_id>`
- `branch_scope_blocked_probe: passed:<order_id>`
- `branch_scope_post_deploy: passed`

## CI / GitHub Actions

แนะนำให้ตั้งค่า:

- `secrets.CCW_RESTRICTED_SMOKE_USERNAME`
- `secrets.CCW_RESTRICTED_SMOKE_PASSWORD`
- `vars.CCW_RESTRICTED_ALLOWED_BRANCHES`

แล้วใช้ workflow:

- [.github/workflows/post-deploy-spot-check.yml](/C:/xampp82/htdocs/CCW/.github/workflows/post-deploy-spot-check.yml:1)
