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.
If I am running firefly behind an HTTP aware gateway, I can govern access to REST api for namespaces based on the HTTP path. However, for websockets, this is not possible. namespace isolation is much looser and requires analysis of query parameters and/or websocket message payloads.
This PR proposes a solution where a WebSocket connection can be opened on a namespace specific path (
/api/v1/namespaces/{namespace}/ws
) and the web socket plugin will only allow streams to be started for the given namespace.This also means that
namespace
query parameter andnamespace
field of thestart
message become redundant. For compatibility reasons, the PR tolerates them but asserts that they must be equal to the namespace for which the connection was opened.