Description
Brief summary including motivation/context
This change is to the streaming mode of of-watchdog to add a named pipe with which the running subprograms can send control messages back to of-watchdog in specify the HTTP response code and headers. This design will be done in such a way so as to not impact the behavior for any called functions which do not make use of the pipe provided. The motivation behind this change is that I need functions to be able to return specific response codes other than 200 for functions which I call.
Any design changes
The of-watchdog process will create a new named pipe when a function is called, then set the environment variable CONTROL_PIPE
before calling the sub process. The of-watchdog will then listen on the control pipe file, if it recieves a JSON blob of the following format, it will use it to set the response code and headers before writing the output of the sub command. If no JSON blob is received before the subprocess begins to output on it's standard out, an HTTP response code of 200 will be sent with the first message.
Pros + Cons
Pros: Functions will now be able to return custom response codes and headers per request.
Cons: None.
Effort required up front
A few days of coding time.
Effort required for CI/CD, release, ongoing maintenance
Minimal, if any.
Migration strategy / backwards-compatibility
This change will be 100% backwards compatible with the existing program.
Mock-up screenshots or examples of how the CLI would work
N/A