Updates desktopPlaybackHandle to new ws paradigm#37981
Merged
ibeckermayer merged 2 commits intomasterfrom Feb 9, 2024
Merged
Conversation
This was referenced Feb 9, 2024
This was mistakenly left out of #37520. This commit also refactors `WithClusterAuthWebSocket` slightly for easier comprehension, and updates the vite config to facilitate the new websocket endpoints in development mode.
5e6a5d4 to
f7ec4ed
Compare
zmb3
reviewed
Feb 9, 2024
| } | ||
|
|
||
| upgrader := websocket.Upgrader{ | ||
| ReadBufferSize: 4096, |
Collaborator
There was a problem hiding this comment.
Note that we will now be using buffers that are 75% smaller. Does this make sense for desktop recordings where we have larger messages?
Contributor
Author
There was a problem hiding this comment.
My sense is that it can make a difference on the margins, but we'd need to do some sort of profiling to know the true impact.
zmb3
approved these changes
Feb 9, 2024
Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
|
@ibeckermayer See the table below for backport results.
|
ibeckermayer
pushed a commit
that referenced
this pull request
Feb 9, 2024
* Updates `desktopPlaybackHandle` to new ws paradigm This was mistakenly left out of #37520. This commit also refactors `WithClusterAuthWebSocket` slightly for easier comprehension, and updates the vite config to facilitate the new websocket endpoints in development mode. * Update lib/web/apiserver.go Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com> --------- Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
github-merge-queue Bot
pushed a commit
that referenced
this pull request
Feb 9, 2024
* Read the bearer token over websocket endpoints instead of query parameter (#37520) * Read the bearer token over WS endpoints use the request context, not session Dont pass websocket by context lint resolve some comments Add TestWSAuthenticateRequest Close ws in handler deprecation notices, doc resolve comments resolve comments give a longer read/write deadline dont set write deadline, ws endpoints never did before and it breaks things convert frontend to use ws access token Resolove comments, move to using an explicit state fix ci reset read deadline prettier * update connectToHost * linter * read errors from websocket * missing /ws on ttyWsAddr and fix wrong onmessage * fix race in test * lint * skip TestTerminal as it takes 11 seconds to run * dont skip the test * resolve apiserver comments * Add an AuthenticatedWebSocket class * convert other clients to use AuthenticatedWebSocket * Converts `AuthenticatedWebSocket` into drop-in replacement for `WebSocket` (#37699) * Converts `AuthenticatedWebSocket` into drop-in replacement for `WebSocket` that automatically goes through Teleport's custom authentication process before facilitating any caller-defined communication. This also reverts previous-`WebSocket` users to their original state (sans the code for passing the bearer token in the query string), swapping in `AuthenticatedWebSocket` in place of `WebSocket`. * Create a single authnWsUpgrader with a comment justifying why we turn off CORS * recieving to receiving * resolve comments --------- Co-authored-by: Isaiah Becker-Mayer <isaiah@goteleport.com> * Updates `desktopPlaybackHandle` to new ws paradigm (#37981) * Updates `desktopPlaybackHandle` to new ws paradigm This was mistakenly left out of #37520. This commit also refactors `WithClusterAuthWebSocket` slightly for easier comprehension, and updates the vite config to facilitate the new websocket endpoints in development mode. * Update lib/web/apiserver.go Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com> --------- Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com> --------- Co-authored-by: Alex McGrath <alex.mcgrath@goteleport.com> Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
ibeckermayer
pushed a commit
that referenced
this pull request
Feb 10, 2024
* Updates `desktopPlaybackHandle` to new ws paradigm This was mistakenly left out of #37520. This commit also refactors `WithClusterAuthWebSocket` slightly for easier comprehension, and updates the vite config to facilitate the new websocket endpoints in development mode. * Update lib/web/apiserver.go Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com> --------- Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
lxea
pushed a commit
that referenced
this pull request
Feb 13, 2024
* Updates `desktopPlaybackHandle` to new ws paradigm This was mistakenly left out of #37520. This commit also refactors `WithClusterAuthWebSocket` slightly for easier comprehension, and updates the vite config to facilitate the new websocket endpoints in development mode. * Update lib/web/apiserver.go Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com> --------- Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
github-merge-queue Bot
pushed a commit
that referenced
this pull request
Feb 13, 2024
* Introduce a new streaming player API (#31754) This new API can be used to play back sessions of any type. The player accepts a session ID and a streamer, and provides the caller with an API for playback controls (speed, play/pause, seek, etc) as well as a channel that receives events with the proper timing delay applied. The design for this change is discussed in RFD 91. Updates #10578 Updates #10579 Updates gravitational/teleport-private#665 Updates gravitational/teleport-private#1024 * Convert the desktop sesssion player to the new player API (#34070) This makes a few changes to the player API to ensure that errors are correctly propagated. * Switch desktop playback to gorilla/websocket (#36405) We use gorilla/websocket throughout the app, but desktop playback leveraged x/net/websocket instead. Convert to gorilla so that we are consistent and use the same library everywhere websockets are used. * Read the bearer token over websocket endpoints instead of query parameter (#37520) * Read the bearer token over WS endpoints use the request context, not session Dont pass websocket by context lint resolve some comments Add TestWSAuthenticateRequest Close ws in handler deprecation notices, doc resolve comments resolve comments give a longer read/write deadline dont set write deadline, ws endpoints never did before and it breaks things convert frontend to use ws access token Resolove comments, move to using an explicit state fix ci reset read deadline prettier * update connectToHost * linter * read errors from websocket * missing /ws on ttyWsAddr and fix wrong onmessage * fix race in test * lint * skip TestTerminal as it takes 11 seconds to run * dont skip the test * resolve apiserver comments * Add an AuthenticatedWebSocket class * convert other clients to use AuthenticatedWebSocket * Converts `AuthenticatedWebSocket` into drop-in replacement for `WebSocket` (#37699) * Converts `AuthenticatedWebSocket` into drop-in replacement for `WebSocket` that automatically goes through Teleport's custom authentication process before facilitating any caller-defined communication. This also reverts previous-`WebSocket` users to their original state (sans the code for passing the bearer token in the query string), swapping in `AuthenticatedWebSocket` in place of `WebSocket`. * Create a single authnWsUpgrader with a comment justifying why we turn off CORS * recieving to receiving * resolve comments --------- Co-authored-by: Isaiah Becker-Mayer <isaiah@goteleport.com> * Updates `desktopPlaybackHandle` to new ws paradigm (#37981) * Updates `desktopPlaybackHandle` to new ws paradigm This was mistakenly left out of #37520. This commit also refactors `WithClusterAuthWebSocket` slightly for easier comprehension, and updates the vite config to facilitate the new websocket endpoints in development mode. * Update lib/web/apiserver.go Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com> --------- Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com> * polishing off merge errors * fixes Path in makeTerminal to reflect new /ws suffix --------- Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com> Co-authored-by: Alex McGrath <alex.mcgrath@goteleport.com>
Contributor
Author
|
Foregoing v13 backport because "[I]t's not directly exploitable. It would require a client side compromise to have any exposure from it" (@jentfoo), and a full backport would require many additional changes being backported that it was determined not to be worth our while. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This was mistakenly left out of #37520.
This commit also refactors
WithClusterAuthWebSocketslightly for easier comprehension, and updates the vite config to facilitate the new websocket endpoints in development mode.