This adds a new Job type that is for generic session state monitoring. Monitoring sessions does not include any information about specific connections.
refactor servers.(repository).ListWorkers(...) into just
servers.ListWorkers(...) used independently of the repo. The method
func is refactor to use the new bits as well.
Originally, UpstreamMessageHandler was used by
controllerUpstreamMessageServiceServer.UpstreamMessage to process
(aka handle) an upstream message and by SendUpstreamMessage to
send an upstream msg.
We split UpstreamMessageHandler into two interfaces so we can
register handlers independently of a senders.
The upstream messages all basically looked the same; regardless
of which message was sent. This PR adds DetailsUpstreamMessage to
audit events emitted by UpstreamMessage requests/response
This makes it possible to have external packages implement the
storage.FS, storage.Container, and storage.File interfaces and correctly
inspect the various options.
Add the following new tables used for storing session recordings:
* recording_session
* recording_connection
* recording_channel
* recording_channel_ssh
* storage_bucket
Stop returning an error if RegisterUpstreamMessageHandler is called
multiple times, since it provides little/no value and creates
invalid errors when more than one test controller is started across
all the unit tests.
Define OSS protos for UpstreamMessageService rpc which defines a way
to send an upstream message to a controller (across multi-hops if
needed).
Implement OSS versions of both workers and controllers for the
UpstreamMessageService. The upstream requests/responses are encrypted
using the originating worker's NodeCredential's key.
The worker always forwards the request upstream.
The controller attends to find a registered UpstreamMessageHandler to
handle the msg; if none if found, then an Unimplemented status error
is returned.
These are used to provide the metadata about a session or connection
when writing a BSR and will be written to the corresponding .meta files
within a BSR.