[ops] herodemo public URL has no auth — hero_proxy ready, runbook lacks the auth subsection #182
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
https://herodemo.gent01.grid.tf/is currently publicly accessible with no authentication. Any visitor can browse:For an evaluation demo this is intentional. For anything beyond that — even just preventing scraping/abuse — we need a gate.
Root cause
Configuration gap, not a code gap.
hero_proxy(the canonical auth boundary, see home#118) supports fourauth_modevalues:none— open (default for new domains)bearer— pre-shared bearer tokenoauth— OAuth provider (Google / GitHub / generic OIDC)optional— guest-first; identity claims forwarded if logged inhero_demo/docs/ops/DEPLOYMENT_NU_HERO_OS.mddoes not include any auth setup step, so the herodemo deploy lands withauth_mode=none(db.rs:345 default).Evidence
hero_proxy/crates/hero_proxy_server/src/proxy.rs:1-8,145-159,204-248— auth modes, OAuth redirect flow, claims injectionhero_proxy/crates/hero_proxy_server/src/db.rs:345—auth_mode TEXT DEFAULT 'none'hero_os/crates/hero_os_app/src/main.rs:1049— comment "Guest-mode: no backend auth check" (auth removed from hero_os_app in 2026-04 refactor)hero_proxy/README.md:174-192— CLI commands for adding domain authhero_auth/README.md:1-29— JWT issuer (HS256), Unix socket RPC, OAuth2 serverFix path (canonical, ~5 minutes per environment)
Per the deployment runbook, after
service_install_allruns, configure hero_proxy for the demo domain:Or for a simpler shared-secret demo gate:
Or for guest-first with optional login (best of both — public read, but identity captured for those who log in):
auth_mode=optionalwas added in commit6c7ecbb(2026-04-14) precisely for this guest-first demo case.Why nginx basic auth is NOT the right answer
X-Hero-Context/X-Hero-Claimsinjection that downstream services depend onAction items
hero_demo/docs/ops/DEPLOYMENT_NU_HERO_OS.mdwith an "Auth" subsection covering all three modes (oauth / bearer / optional)hero_skillssoHERO_AUTH_MODE=oauth(or=bearer,=optional) at install time configures hero_proxy automatically/home/driver/hero/var/sockets/hero_router/ui.sock(the unified entrypoint)Demo state on herodemo (2026-04-24)
Related
hero_proxyrepo (auth) andhero_authrepo (JWT issuer) — both production-readySigned-off-by: mik-tf
Demo hotfix landed 2026-04-25
Per user request, basic auth gating is now live on herodemo:
--ui-port 9990)Verified:
This is not the canonical Hero auth path. The proper answer remains hero_proxy with auth_mode oauth/bearer/optional (this issue's body covers it). Demo VM is gated for now; production/long-term should land hero_proxy auth via the runbook.
Snapshot is overdue and will capture this state.
Signed-off-by: mik-tf
Deploy-side complete on
hero_skills/development:basic_auth_setup(commit011dd83, PR #129)proxy_auth_setup(commitf17e99c, PR #130)Long-term consolidation onto the canonical path tracked at #186 — once that lands, the demo helper goes away. Closing this issue since both deploy paths ship.