feat: public guest discovery endpoints + privacy fix (v0.3.0) #17
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/public-guest-endpoints"
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?
Slice-1 backend for the webapp guest booking UI (
aiolabs/webapp#141). The webapp will drive chatelet over HTTP (the kind-21000 RPC client is disabled post-lnbits#9 — needs the phase-3 inner-payload-identity change), so guests need a public HTTP read surface.🔒 Privacy fix (affects already-shipped RPC endpoints)
The
AUTH_NONERPC room endpoints (chatelet_room_list/chatelet_room_get) strippedwalletbut notcheckin_instructions— which was added in #5 after that code. So the operator's private access details (address, gate code) were leaking to any guest querying listings. Centralized apublic_room_dict(room)helper (stripswallet+checkin_instructions) and routed both the RPC and HTTP doors through it. Worth noting this was live in v0.1.0–v0.2.0.New public endpoints (no auth, active-only, stripped)
GET /chatelet/api/v1/public/roomsGET /chatelet/api/v1/public/rooms/{room_id}(availability + booking POST are already public; booking-status is slice 2.)
Tests — 32 pass
+4:
public_room_dictdrops wallet + checkin_instructions; public list is active-only + stripped; public get 404s on inactive.Release after merge
Tag
v0.3.0, add a new catalog entry alongside 0.1.0/0.2.0. Then upgrade chatelet on aio-demo — the webapp guest UI (slice 1 part B) will talk to those public endpoints there. I'll carry the tag + catalog through.Why PR
Money-adjacent extension → PR category. Handing off merge to you via the Forgejo UI.
🤖 Generated with Claude Code
GET /public/rooms + /public/rooms/{id} — no auth, active rooms only, operator-private fields stripped. The webapp guest UI needs these because the existing GET /rooms is admin-scoped; availability + booking POST are already public. Reuses the public_room_dict strip. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019VUQCfdqiLSsFS2jcGnaFD