Modules
The self-hosted runner: a Managoat.Sandbox adapter whose transport is a
WebSocket that a daemon on the user's machine dials out to the platform.
The self-hosted runner adapter: Managoat.Sandbox implemented as RPCs to a
runner daemon on a machine the user owns.
The library's one setting, read from its own otp_app
The server end of one runner daemon's socket.
An in-BEAM stand-in for the runner daemon, speaking the exact wire
protocol Managoat.Runner.Connection speaks, so the adapter and the
connection process are exercised end to end without a Go binary or a
network.
The socket process of a Managoat.Runner.FakeDaemon: it runs
Managoat.Runner.Connection as a WebSock handler would, and is the
registered connection process. Frames the connection pushes go to the
daemon process; frames the daemon sends arrive as handle_in/2.
What the platform running Managoat.Runner supplies: a way to reach a
runner's connection process by id, and two notifications it may act on.
The reference Managoat.Runner.Host: a plain Registry (keys: :unique)
on one node, and no reaction to heartbeats or presence.
Sandbox names on the runner provider carry the runner id, because
Managoat.Sandbox hands an adapter nothing but the name: the shape is
runner-<32 hex>-<8 hex>, the runner's UUID without dashes and a random
suffix.