Right now, the CLI is somewhat intimately tied to the function of the analyzer portion of the application. In the future, it would be good to have the backend feel purely like an API that is called by the CLI, the web app, and maybe as a REST API in the future.
Things I would do:
Move the saml_reader.validation.mongo.ValidationReport class into the CLI exclusively, or maybe as some sort of utility resource
Write a set of functions to act as an API interface (not a REST API, mind you) for the package. This has been done "halfway" with the web interface, but I think it could be more fully realized.
Wire in the CLI and web interface to use the new API interface.
Remove the concept of passing in the input and output streams from the analyzer and leave that up to the specific user-facing implementations.
Move CLI input capture into the CLI and make an API to validate inputs.
Right now, the CLI is somewhat intimately tied to the function of the analyzer portion of the application. In the future, it would be good to have the backend feel purely like an API that is called by the CLI, the web app, and maybe as a REST API in the future.
Things I would do:
saml_reader.validation.mongo.ValidationReport
class into the CLI exclusively, or maybe as some sort of utility resource38