SOARCA icon indicating copy to clipboard operation
SOARCA copied to clipboard

cleaner integrations support

Open lucamrgs opened this issue 1 year ago • 0 comments

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):

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 some MakeDownStreamReporter()
      • IIntegrationManualStepCapability, with some MakeManualStepCapability()`
      • ...
  • reporter
    • <integration_name>_reporter.go with implementation of IDownStreamReporter
  • manual
    • <integration_name>_manual.go with implementation of <TBD Manual Step face>
  • other folders as needed, e.g. utils, or common

lucamrgs avatar Dec 03 '24 12:12 lucamrgs