cleaner integrations support
Is your feature request related to a problem? Please describe. As we are testing with The Hive, it's nice to have a clear, uniform, and simple structure to connect to any eventual 3P integration that is developed with SOARCA, instead of having related snippets of code or files non coherently placed in the code.
Describe the solution you'd like As of now two are three types of integrations inside SOARCA possible (besides fins, not part of this issue):
- Down stream reporters
- Manual steps support (see StackStorm inquiries for inspiration)
It would be nice to organise the project structure in a way that a 3P tool could easily navigate to a 3P tool-specific integrations location, and have a centralised view of their 3P-specific integration code and software.
Besides, such a feature would also allow to normalise the instantiation of integration-specific components in the controller. E.g.,
- normalised import of
soarca/pkg/integration/<integration-name> - normalised instantiation of integration components e.g.
<integraiton-name>DownStreamReporter := <integration-name>.MakeDownStreamReporter(...)
Note: this issue would also require to change the documentation of the reporter, and in other related places.
Describe alternatives you've considered Integrations code could be organized in such project structure
within pkg/integration/<integration-name>/:
<integration_name>.go- with implementation of some type of
IIntegrationDownStreamReporter, with someMakeDownStreamReporter()- IIntegrationManualStepCapability
, with someMakeManualStepCapability()` - ...
- with implementation of some type of
reporter<integration_name>_reporter.gowith implementation ofIDownStreamReporter
manual<integration_name>_manual.gowith implementation of<TBD Manual Step face>
- other folders as needed, e.g.
utils, orcommon