Target runtime: under 10 minutes for a full manual pass.
Non-interactive verification alternative:
make demo-verifyruns smoke/recovery/support-bundle/admin checks (including local support bundle artifact validation) without launching the desktop UI.- Optional runtime-invariant pass when local edge and cloud are running:
EDGE_URL=http://127.0.0.1:8787 EDGE_TOKEN=<edge-token> CLOUD_URL=http://127.0.0.1:8000 ADMIN_API_TOKEN=<admin-token> make check-invariants - Optional scripted desktop close semantics pass:
DEMO_VERIFY_DESKTOP=1 DEMO_VERIFY_DESKTOP_AUTO_CLOSE_SECONDS=20 make demo-verify
- From repo root,
.envexists. For the standard beginner path,cp .env.example .envis sufficient because it already contains the dev-safeADMIN_API_TOKENand admin login defaults. - Docker Desktop (or daemon) is running.
- Camera device is available.
- Start demo stack
- Run
make demo-up. - Verify:
http://127.0.0.1:8000/healthreturns 200.http://127.0.0.1:3000loads.
- Launch desktop
- Run
make demo-desktop. - Verify desktop opens with
Login | Enroll | Settingstabs and status strip.
- Enroll (capture N frames, commit)
- Go to
Enrolltab. - Start enrollment, capture frames until progress reaches target, commit template.
- Expected:
Enrollment Completewith template id.
- Auth success (ALLOW)
- Go to
Logintab and run verification. - Expected: final decision
allowfor enrolled user under normal conditions.
- Trigger STEP_UP
- Trigger a medium-risk path (adjust lighting/pose/motion as needed) until step-up is required.
- Expected: explicit
Additional check requiredhandoff and successful continuation.
- Verify denial case
- Trigger a deny condition (
liveness failorsimilarity below threshold). - Expected: final decision
denywith clear reason message.
- Cloud-down recovery
- In a second terminal, run
docker compose stop cloud admin. - Perform local auth from desktop.
- Expected: auth still completes locally and edge outbox pending/DLQ counters increase.
- Cloud restore
- Run
docker compose up -d cloud admin. - Wait until cloud health is green.
- Expected: outbox drains and events become visible in admin (
/events).
- Support bundle sanitization
- From admin UI Support page, generate/download support bundle.
- Validate tarball contains diagnostics/stats/events summaries only and no raw frames, embeddings, tokens, or signatures.
- Desktop exit process hygiene
- Close desktop app.
- Optional scripted close path:
DEMO_AUTO_CLOSE_SECONDS=30 make demo-desktop - CI-friendly scripted close path (no Docker):
make demo-desktop-verify - Expected close statuses:
0(app close),130(Ctrl+C), or143(terminate) unless strict mode is set. - Verify no orphan edge process remains:
make check-no-orphans- Canonical script path:
scripts/check_no_orphan_edge.sh
- Shut down demo stack:
make demo-down - Optional volume cleanup:
make demo-down V=1