Fix TAP WebSocket connection failing with bad handshake when TAP_ADMIN_PASSWORD is set#37
Fix TAP WebSocket connection failing with bad handshake when TAP_ADMIN_PASSWORD is set#37Kzoeps wants to merge 97 commits intohypercerts-org:mainfrom
Conversation
… pagination (hyperindex-q00.2)
- Add DIDFilterInput GraphQL type with only eq and in fields (no contains/startsWith/neq) - Replace StringFilterInput with DIDFilterInput for the did field in WhereInput - Introduce DIDFilter struct in repositories to carry eq and in conditions - Update extractFilters to populate DIDFilter.EQ and DIDFilter.IN from GraphQL args - Add buildDIDFilterClause helper to generate SQL WHERE conditions for DIDFilter - Update all repository methods to accept DIDFilter instead of plain string - Add tests for DIDFilterInput fields, extractFilters DID handling, and DID in filtering
…yConnection (hyperindex-q00.11)
…g, theme toggle (hyperindex-0nk.5)
- Replace hardcoded hypergoat-app-production URL with NEXT_PUBLIC_API_URL env var - Point GraphiQL links directly to backend (Next.js rewrite can't proxy HTML) - Remove broken /graphiql rewrite from next.config.ts
…_API_URL - Add /graphiql server-side redirect route (reads HYPERINDEX_URL at runtime) - Add ARG NEXT_PUBLIC_API_URL to Dockerfile so docs page gets correct URL at build time - Revert dashboard/header GraphiQL links to /graphiql (handled by redirect route)
Documents the exact railway up commands, env vars, custom domains, and common troubleshooting for deploying both services.
…NSIDs (hyperindex-2rz)
…red fields with missing data
…h (hyperindex-3gm)
feat: Replace Jetstream+Backfill with Tap sidecar
- errorlint: use errors.Is(err, context.Canceled) instead of == comparison - gocritic: use http.NoBody instead of nil for GET request bodies - ineffassign: remove unused nextPlaceholder assignments after last DID filter - revive: add nolint:revive to types package declarations (consistent with existing files)
Merging tap & filter features into main branch
The TAP /channel WebSocket endpoint requires Basic Auth when TAP_ADMIN_PASSWORD is set. The consumer was sending no Authorization header, causing a 401 which gorilla/websocket surfaces as 'bad handshake'. Wire cfg.TapAdminPassword into ConsumerConfig.Password and build the Authorization header in runOnce() before dialing, matching the pattern already used by AdminClient for HTTP requests.
|
@Kzoeps is attempting to deploy a commit to the Hypercerts Foundation Team on Vercel. A member of the Team first needs to authorize it. |
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The TAP sidecar's /channel WebSocket endpoint requires HTTP Basic Auth when a password is configured. The consumer was dialing with no headers, causing a 401 that gorilla/websocket surfaces as "websocket: bad handshake", preventing Hyperindex from receiving any events.
Changes:
No behaviour change when TAP_ADMIN_PASSWORD is empty.