Skip to content

Conversation

@lucamrgs
Copy link
Collaborator

No description provided.

@lucamrgs lucamrgs linked an issue Oct 23, 2024 that may be closed by this pull request
@github-actions
Copy link

github-actions bot commented Oct 23, 2024

Sigrid maintainability feedback

↗️ You improved your code's maintainability towards your Sigrid objective of 4.0 stars

Show details

Sigrid compared your code against the baseline of 2024-11-07.

👍 What went well?

You fixed or improved 2 refactoring candidates.

Risk System property Location
🟠 Unit Size
(Improved)
internal/decomposer/decomposer.go
Decomposer.ExecuteBranch(stepId string, scopeVariables cacao.Variables)
🟡 Unit Complexity
(Improved)
internal/decomposer/decomposer.go
Decomposer.ExecuteBranch(stepId string, scopeVariables cacao.Variables)

👎 What could be better?

Unfortunately, 26 refactoring candidates were introduced or got worse.

Risk System property Location
🟠 Unit Size
(Worsened)
internal/executors/action/action.go
Executor.Execute(meta execution.Metadata, metadata PlaybookStepMetadata)
🟠 Unit Size
(Worsened)
internal/executors/playbook_action/playbook_action.go
PlaybookAction.Execute(metadata execution.Metadata, step cacao.Step, variables cacao.Variables)
🟠 Unit Interfacing
(Introduced)
internal/decomposer/decomposer.go
New(actionExecutor action.IExecuter, playbookActionExecutor executors.IPlaybookExecuter, condition condition.IExecuter, guid guid.IGuid, reporter reporter.IWorkflowReporter, time timeUtil.ITime)
🟠 Unit Interfacing
(Introduced)
internal/reporter/reporter.go
Reporter.reportStepEnd(executionId uuid.UUID, step cacao.Step, returnVars cacao.Variables, stepError error, at time.Time)
🟠 Unit Interfacing
(Introduced)
internal/reporter/reporter.go
Reporter.ReportStepEnd(executionId uuid.UUID, step cacao.Step, returnVars cacao.Variables, stepError error, at time.Time)
🟠 Unit Interfacing
(Introduced)
internal/reporter/downstream_reporter/cache/cache.go
Cache.upateEndExecutionStep(executionId uuid.UUID, stepId string, returnVars cacao.Variables, stepError error, acceptedStepStati []cache_report.Status, at time.Time)
🟠 Unit Interfacing
(Introduced)
internal/reporter/downstream_reporter/cache/cache.go
Cache.ReportStepEnd(executionId uuid.UUID, step cacao.Step, returnVars cacao.Variables, stepError error, at time.Time)
🟡 Unit Size
(Introduced)
internal/reporter/downstream_reporter/cache/cache.go
Cache.upateEndExecutionStep(executionId uuid.UUID, stepId string, returnVars cacao.Variables, stepError error, acceptedStepStati []cache_report.Status, at time.Time)
⚫️ + 18 more

📚 Remaining technical debt

10 refactoring candidates didn't get better or worse, but are still present in the code you touched.

View this system in Sigrid** to explore your technical debt

⭐️ Sigrid ratings

System property System on 2024-11-07 Before changes New/changed code
Volume 5.5 N/A N/A
Duplication 4.3 4.7 5.5
Unit Size 2.4 2.3 2.3
Unit Complexity 2.6 2.2 2.3
Unit Interfacing 2.4 1.3 0.8
Module Coupling 3.7 5.5 5.5
Component Independence 0.5 N/A N/A
Component Entanglement 2.9 N/A N/A
Maintainability 3.0 3.4 3.5

Did you find this feedback helpful?

We would like to know your thoughts to make Sigrid better.
Your username will remain confidential throughout the process.


View this system in Sigrid

@lucamrgs lucamrgs changed the title add connectors concepts in documentation and mention for catalyst add connectors concepts in documentation Oct 23, 2024
@MaartendeKruijf MaartendeKruijf force-pushed the feature/docs/234-connector-reporters-documentation branch from 8c1e222 to e249951 Compare October 31, 2024 13:28
Copy link
Collaborator

@MaartendeKruijf MaartendeKruijf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think is looks good only the links need to be fixed and we could at some paragraph about the asynchronous nature of reporting

For the execution of a playbook, a *Decomposer* and invoked *Executor*s are injected with a *Reporter*. The *Reporter* maintains the reporting logic that reports execution information to a set of specified and available targets.

A reporting target can be internal to SOARCA, such as a [Cache](#cache-reporter). A reporting target can also be a third-party tool, such as an external SOAR/ SIEM, or incident case management system.
A reporting target can be internal to SOARCA, such as a [Cache](#cache-reporter). A reporting target can also be a third-party tool, such as an external SOAR/ SIEM, or incident case management system (see [connectors](https://cossas.github.io/SOARCA/docs/core-components/connectors/)).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link doesn't work

Along the execution of the workflow steps, the reporting classes will dynamically update the steps execution information such as output variables, and step execution success or failure.

The reporting features will enable the population and updating of views and data concerning workflow composition and its dynamic execution results. This data can be transmitted to SOARCA internal reporting components such as a cache, as well as to third-party tools.
The reporting features will enable the population and updating of views and data concerning workflow composition and its dynamic execution results. This data can be transmitted to SOARCA internal reporting components such as a cache, as well as to third-party tools (see [connectors](#connectors)).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also this link doesn't work I think it needs to be

Suggested change
The reporting features will enable the population and updating of views and data concerning workflow composition and its dynamic execution results. This data can be transmitted to SOARCA internal reporting components such as a cache, as well as to third-party tools (see [connectors](#connectors)).
The reporting features will enable the population and updating of views and data concerning workflow composition and its dynamic execution results. This data can be transmitted to SOARCA internal reporting components such as a cache, as well as to third-party tools (see [connectors](#connectors-and-3--tools-reporting)).



## General Reporting Architecture

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should add a paragraph of flow diagram that explains the asynchronous nature of reporting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

connector reporters documentation

3 participants