Type: New Feature
Status: In Progress
Affects Version/s: None
Fix Version/s: None
Component/s: Core Framework
Add new concept: Flow analysis based on user-defined rules
Flow analysis runs check wether the flow is in a "proper" state.
What constitutes "proper" is defined by the users by creating flow analysis rules.
These rules are a new type of component and behave as such in almost every aspect. (They can have properties, they can be added to nifi as extensions via nars, they are versioned, persisted in flow.xml etc.)
The framework takes care of running the rules as appropriate.
Each rule is provided a representation of the flow (or part of it) - defined by an interface - and may analyze it in any way it seems fit. The result of the analysis is represented by zero or more rule violation objects that the framework accepts and handles from then on.
The effect of the analysis result by a given rule depends on the type of the rule, which can be either recommendation or policy.
Recommendations are information displayed to the user.
Policies are more strict. Apart from being available to be viewed by the user (similar to recommendations), they also invalidate the components that violated the corresponding rule.
The analysis results can be displayed and can be disabled (ignored) or re-enabled.