From 1a2775adfcbfad65c4324731ee877d60430f38bf Mon Sep 17 00:00:00 2001 From: Joshua Date: Sun, 20 Sep 2026 20:11:35 -0400 Subject: [PATCH] Correct the kiosk account permissions and document both panel card views --- README.md | 36 +++++++++++++++++++++++++++++++----- tests/test_frontend.py | 2 ++ 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7c59ffe..4de8a39 100644 --- a/README.md +++ b/README.md @@ -163,12 +163,38 @@ is simply a Home Assistant client. 1. **Create a dedicated kiosk user.** In *Settings → People → Users*, add a new user for the wall device. Make it **non-admin**, and ensure it is - not in the NestQuest admin allowlist. This is the account the panel - runs as, and it should have no authority beyond viewing the dashboard. + not in the NestQuest admin allowlist. The allowlist blocks the NestQuest + **admin** operations — `uncomplete_quest`, `create_quest_definition`, + `update_quest_definition`, `set_quest_definition_active`, + `set_presence_pattern`, `create_presence_override`, + `delete_presence_override`, `export_history_csv`, and `manage_child` + (plus `regenerate` flows) — it does not make the account view-only. The + kiosk user *can* call `nestquest.complete_quest`, the one open NestQuest + service, to complete quests from the panel, and as a non-admin Home + Assistant user it may also reach other permitted Home Assistant entities + and services. -2. **Build a dashboard with only the NestQuest panel card.** Create a new - Lovelace dashboard that contains only the NestQuest panel card. Keep - the surface minimal — no other cards, no admin controls. +2. **Build a dashboard with only the NestQuest panel cards.** A functional + panel needs **two** Lovelace views, each with its own card config from + `design/ENTITIES-AND-SERVICES.md` §4. The dashboard contains only the + NestQuest panel card for each view — no other cards, no admin controls. + + - **View 1 — party board** (`type: custom:nestquest-party-board-card`): + the household quest board. Set `weather_entity` (optional; the dock + falls back to date/time), `quest_log_path: /nestquest/log` (the view + the crest tap navigates to), and `child_order: [slug1, slug2, slug3]` + listing each child's slug in display order. + + - **View 2 — quest log** (`type: custom:nestquest-quest-log-card`): the + per-child quest screen the party board hops to. Set + `board_path: /nestquest/board` (the party-board view to return to), + `weather_entity`, `idle_return_seconds` (must be shorter than + TouchHub Auto-Return), `confirm_timeout_seconds`, and + `complete_screen_seconds`. The quest log reads the selected child's + slug from the view's URL path, so the board → log hop is a plain + Lovelace navigation. + + See `design/ENTITIES-AND-SERVICES.md` §4 for the full card YAML. 3. **Point TouchHub at it.** In the TouchHub launcher, add the **Home Assistant Lovelace** app to the dock and paste the dashboard URL from diff --git a/tests/test_frontend.py b/tests/test_frontend.py index b8acba3..e6cd580 100644 --- a/tests/test_frontend.py +++ b/tests/test_frontend.py @@ -173,5 +173,7 @@ def test_readme_documents_the_touchhub_setup_runbook() -> None: assert required in readme, required assert "not in the NestQuest admin allowlist" in readme assert "contains only the NestQuest panel card" in readme + assert "nestquest-party-board-card" in readme + assert "nestquest-quest-log-card" in readme assert "use_x_frame_options" not in readme assert "clickjacking" not in readme