Skip to content

Commit 70ca659

Browse files
LSRCTstunningpixelsactions-user
authored
Implement host-scoped relay tunneling with DB-backed auth and shared transport (Vibe Kanban) (#2898)
* Relay * feat(auth): add trusted-key-auth crate * fix(relay-test-client): tolerate exchange landing 404 and list workspaces * feat(relay-auth): add PAKE enrollment and signed relay request enforcement * Add end-to-end relay integrity for HTTP and WebSocket traffic * Refactor terminal websocket to use signed transport wrapper * Migrate remaining websocket routes to signed transport wrapper * Unify relay HTTP request auth on PAKE-derived MAC * Cleanup script changes for workspace 10a2f52b-0c94-4fa7-9225-f90fa490415c * Use enum for relay WS message type in signed envelopes * Sign and verify WebSocket control frames in relay wrapper * Refactor relay HTTP path classification and require OriginalUri * Move relay-auth outside signed middleware and simplify URI canonicalization * Use ed25519 signing for relay messages * Refactor relay signature validation and WS signing input * drop unused direction * Cleanup script changes for workspace 10a2f52b-0c94-4fa7-9225-f90fa490415c * Relay lifecycle and trusted pub keys persistence * Add relay settings frontend * Upsert host on relay registration * clippy * db * Add login button * Skip origin validation for relayed messages * Expose relay headers * fmt * i18n * fix test client redirect * Louis/relay feedback (#2931) * tunnel * restructure tunnel * inline dbg * cleanups * headers * signing session deployment * session get * fmt * trusted key auth getters * cleanup errors * persist single server key * key assets * cleanup re-exports * remove redundant host endpoints * update readme * Implement remote web relay PAKE pairing flow (#2932) * feat(types): share relay SPAKE2 enrollment responses with web-core * refactor(web-core): split relay backend client from remote API * refactor(relay): move settings pairing fetch flow into relay backend API * share relay SPAKE2 enrollment request types across rust and web * Lint * start and stop relay when relay_enabled config toggles * Harden approvals websocket with relay frame signing * Add relay api base to pre-release env * On remote web, the user should see a list of hosts in their `AppBar.tsx` , where the workspaces (vibe-kanban) (#2936) * Add relay host statuses to remote AppBar and unpaired pairing shortcut * Refine AppBar host section with divider and top status badge * Right-align host status badges in AppBar * Simplify AppBar host status indicators to consistent right-aligned circles * Add relay client identities and paired-client management (Vibe Kanban) (#2937) * Add relay client identity metadata and paired-client management * Relay settings: auto-check paired clients every 10s with spinner * Relay settings: simplify paired-client checking copy * Relay settings: add remote-control docs links in local and remote cards * Add remove action for paired relay hosts in remote settings (#2940) * Implement secure relay auth/transport and AppBar settings-host UX updates (Vibe Kanban) (#2939) * Add settings action to AppBar user dropdown * Update AppBar user menu settings label and visibility * We added a relay tunnel feature and infra for that in the few commits. we then changed routing to (vibe-kanban cd08780d-bede-48e6-b34a-eeb50b3ed3ef) * chore: bump relay-tunnel version to 0.1.1 * Remove unused RELAY_BASE_DOMAIN * We added a relay tunnel feature and infra for that in the few commits. we then changed routing to (vibe-kanban cd08780d-bede-48e6-b34a-eeb50b3ed3ef) * update cargo lock * chore: bump relay-tunnel version to 0.1.2 * cargo lock * Update remote cargo lock when relay deploy * Cargo lock * Revert lock update * chore: bump relay-tunnel version to 0.1.3 * Demote relay logs * Enable remote workspaces over relay host tunnels with signed WS transport (Vibe Kanban) (#2942) * feat(remote-web): load workspaces through selected relay host tunnel * Enable remote workspaces UI via relay-backed local API transport * Handle signed relay WebSocket envelopes in remote web * Update Cargo.lock * Fix remote relay session base URL typing in relay host API * Invalidate the hosts hook tanstack query when we pair a host in remote web (vibe-kanban dddeb1e2-bebf-47f5-80d8-7672e845b257) * Remove local-web TerminalProvider re-export indirection * Cleanup script changes for workspace 665fa68e-b167-4194-826d-563f0a75e281 * Fix relay multipart signature/body mismatch * format, add remote-web:format * Fix missing UserSystem provider on remote project workspace routes (Vibe Kanban) (#2944) * remote-web: provide user system context on project workspace routes * remote-web: tunnel local API calls on project workspace routes * consolidate web public assets into packages/public for local and remote (#2945) * bump migration --------- Co-authored-by: Louis Knight-Webb <louis@bloop.ai> Co-authored-by: GitHub Action <action@github.com>
1 parent e5c1094 commit 70ca659

235 files changed

Lines changed: 15590 additions & 854 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/pre-release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,7 @@ jobs:
328328
POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY }}
329329
POSTHOG_API_ENDPOINT: ${{ secrets.POSTHOG_API_ENDPOINT }}
330330
VK_SHARED_API_BASE: ${{ secrets.VK_SHARED_API_BASE }}
331+
VK_SHARED_RELAY_API_BASE: ${{ secrets.VK_SHARED_RELAY_API_BASE }}
331332
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
332333

333334
- name: Build backend (macOS)
@@ -343,6 +344,7 @@ jobs:
343344
POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY }}
344345
POSTHOG_API_ENDPOINT: ${{ secrets.POSTHOG_API_ENDPOINT }}
345346
VK_SHARED_API_BASE: ${{ secrets.VK_SHARED_API_BASE }}
347+
VK_SHARED_RELAY_API_BASE: ${{ secrets.VK_SHARED_RELAY_API_BASE }}
346348
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
347349

348350
- name: Build backend (Windows)
@@ -361,6 +363,7 @@ jobs:
361363
POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY }}
362364
POSTHOG_API_ENDPOINT: ${{ secrets.POSTHOG_API_ENDPOINT }}
363365
VK_SHARED_API_BASE: ${{ secrets.VK_SHARED_API_BASE }}
366+
VK_SHARED_RELAY_API_BASE: ${{ secrets.VK_SHARED_RELAY_API_BASE }}
364367
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
365368
# Avoid aws-lc-sys CMake failures when Rust's `release` profile includes debug info.
366369
# Without this, cmake-rs selects RelWithDebInfo and CMake fails when ASM is enabled.

.github/workflows/relay-deploy-prod.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,8 @@ jobs:
7575
# Update version in crates/relay-tunnel/Cargo.toml
7676
cd crates/relay-tunnel
7777
cargo set-version "$new_version"
78-
cd ../..
79-
80-
# Update workspace Cargo.lock
8178
cargo update relay-tunnel
79+
cd ../..
8280
8381
echo "New version: $new_version"
8482
echo "New tag: $new_tag"
@@ -90,7 +88,7 @@ jobs:
9088
run: |
9189
git config --local user.email "action@github.com"
9290
git config --local user.name "GitHub Action"
93-
git add crates/relay-tunnel/Cargo.toml Cargo.lock
91+
git add crates/relay-tunnel/Cargo.toml crates/relay-tunnel/Cargo.lock
9492
git commit -m "chore: bump relay-tunnel version to ${{ steps.version.outputs.new_version }}"
9593
git tag -a ${{ steps.version.outputs.new_tag }} -m "Relay release ${{ steps.version.outputs.new_tag }}"
9694
git push

0 commit comments

Comments
 (0)