The deployed signed chain: AudioProxy.Plugs.SignedChain and then the action.
The checks ahead of the action, their order and the assigns contract between
them live in AudioProxy.Plugs.SignedChain, which the test pipelines mount
too โ this module is that unit plus the production action options, and the
test mountings differ from it only in theirs.
A new check goes in SignedChain, never here. A plug added between the
two below runs in production and in neither test mounting, which is the
divergence the extraction removed, reinstated in one line. Nothing prevents
it structurally: the seam is "everything ahead of the action", and moving it
would mean making the action mountable through the unit.
Mounted by the router for GET /:sig/*rest; /health stays outside it, so
an unsigned liveness check never touches signature verification.
The action is the seam, and there are two behind it: the streaming render and
the info probe. Both endpoints in ยง2 are the same route and the same checks,
so which one a request reached is a fact the chain discovers rather than the
router โ AudioProxy.Plugs.ParseOptions decides it and
AudioProxy.Plugs.Action acts on it.
Summary
Functions
Callback implementation for Plug.call/2.
Callback implementation for Plug.init/1.