Automated demo run executed by the Demo Agent on the shared display.
| Field | Value |
|---|---|
| Scene | agents/hermes/demo_scenes/dental_walkthrough |
| App under test | https://test-client-dental.dental.veripath.co.uk (test-client-dental realm) |
| Run timestamp (UTC) | 2026-08-03T16:43:15Z — 2026-08-03T16:46:29Z |
| Result | PASS |
| Duration | ~3 min 14 s |
| Roles demonstrated | Reception → Dentist → Practice Manager → Admin |
| Steps executed | 60 / 60 (all OK) |
| Screenshots | 15 (all uploaded to /demo-runs/) |
All verifications passed, including the deliberate RBAC block: the receptionist was
denied access to the Financial module with HTTP 403 and the permission-denied
message, proving role-based access control works end to end.
Narration: Front of house — the receptionist manages the practice calendar, appointments and recalls.
| # | Role | Action | Result | Screenshot |
|---|---|---|---|---|
| 2–3 | RECEPTION | USER + NAVIGATE | OK — redirected to Keycloak sign-in | |
| 4 | RECEPTION | KEYCLOAK_LOGIN | OK — redirected back to app, no /realms/ |
|
| 5–6 | RECEPTION | VERIFY_VIEW + VERIFY_TEXT | OK — /dental/practices/, "Test Client Dental Practice" |
|
| 7 | RECEPTION | SCREENSHOT | OK | ![]() |
| 8–9 | RECEPTION | NAVIGATE + VERIFY_VIEW | OK — /dental/appointments/ |
|
| 10 | RECEPTION | SCREENSHOT | OK | ![]() |
| 11–12 | RECEPTION | NAVIGATE + VERIFY_TEXT | OK — "Recall Management" | |
| 13 | RECEPTION | SCREENSHOT | OK | ![]() |
| 14 | RECEPTION | NAVIGATE /dental/financial/ | OK — permission-denied page shown | |
| 15 | RECEPTION | EXPECT_403 | OK — fetch status 403 + denied signature (required roles: DENTAL_ADMIN, DENTAL_PRACTICE_MANAGER) | |
| 16 | RECEPTION | SCREENSHOT | OK | ![]() |
Narration: Clinical — the dentist reviews FP17 claims, charting, perio examinations and radiographs.
| # | Role | Action | Result | Screenshot |
|---|---|---|---|---|
| 18–20 | DENTIST | USER (signed out prior role) + NAVIGATE + KEYCLOAK_LOGIN | OK | |
| 21 | DENTIST | VERIFY_VIEW | OK — /dental/practices/ |
|
| 22–23 | DENTIST | NAVIGATE + VERIFY_TEXT | OK — FP17 NHS Claims | |
| 24 | DENTIST | SCREENSHOT | OK | ![]() |
| 25 | DENTIST | CLICK first claim row | OK — opened /dental/fp17/16/ |
|
| 26 | DENTIST | SCREENSHOT | OK | ![]() |
| 27–28 | DENTIST | NAVIGATE + VERIFY_TEXT | OK — Clinical Charting | |
| 29 | DENTIST | CLICK first chart row | OK — opened /dental/charts/32/ |
|
| 30 | DENTIST | SCREENSHOT | OK | ![]() |
| 31–32 | DENTIST | NAVIGATE /dental/perio/ + CLICK first exam row | OK — opened /dental/perio/8/ |
|
| 33 | DENTIST | SCREENSHOT | OK | ![]() |
| 34–35 | DENTIST | NAVIGATE + SCREENSHOT | OK | ![]() |
Narration: Practice Manager — financials, seat management and staff rotas.
| # | Role | Action | Result | Screenshot |
|---|---|---|---|---|
| 37–39 | MANAGER | USER (signed out prior role) + NAVIGATE + KEYCLOAK_LOGIN | OK | |
| 40 | MANAGER | VERIFY_VIEW | OK — /dental/practices/ |
|
| 41–42 | MANAGER | NAVIGATE /dental/financial/ + VERIFY_VIEW | OK — Financial Dashboard accessible (no 403) | |
| 43 | MANAGER | SCREENSHOT | OK | ![]() |
| 44–45 | MANAGER | NAVIGATE /dental/seats/ + SCREENSHOT | OK | ![]() |
| 46–47 | MANAGER | NAVIGATE /dental/staff/ + SCREENSHOT | OK | ![]() |
Narration: Admin — practice settings, zones and schedules, and provider management.
| # | Role | Action | Result | Screenshot |
|---|---|---|---|---|
| 49–51 | ADMIN | USER (signed out prior role) + NAVIGATE + KEYCLOAK_LOGIN | OK | |
| 52 | ADMIN | VERIFY_VIEW | OK — /dental/practices/ |
|
| 53–54 | ADMIN | NAVIGATE + VERIFY_TEXT | OK — Appointment Zones | |
| 55 | ADMIN | SCREENSHOT | OK | ![]() |
| 56–57 | ADMIN | NAVIGATE + SCREENSHOT | OK | ![]() |
| 58–59 | ADMIN | NAVIGATE /dental/providers/ + SCREENSHOT | OK | ![]() |
Narration: Walkthrough complete — all four dental roles demonstrated, including the RBAC block.
/opt/hermes-demo/runs/dental_walkthrough_20260803T164315Z/steps.log