Matt Gilman created NIFI-16398:
----------------------------------
Summary: Add connector troubleshooting actions and state
presentation
Key: NIFI-16398
URL: https://issues.apache.org/jira/browse/NIFI-16398
Project: Apache NiFi
Issue Type: Task
Components: Core UI
Reporter: Matt Gilman
h2. Background
The NiFi backend exposes a TROUBLESHOOTING connector state and connector
actions for entering and ending that state. The frontend does not currently
recognize the state or present the corresponding actions.
Users need an explicit, permission-aware way to start and end troubleshooting
and a consistent visual representation of the active state.
h2. Goals
* Add TROUBLESHOOTING to the frontend connector state model.
* Add ENTER_TROUBLESHOOTING and END_TROUBLESHOOTING action names.
* Display troubleshooting actions only when allowed by the backend.
* Execute troubleshooting lifecycle requests through connector state effects.
* Present the troubleshooting state consistently in connector listings and
details.
h2. Scope
h3. Shared Connector Contracts
* Add TROUBLESHOOTING to ConnectorState.
* Add ENTER_TROUBLESHOOTING and END_TROUBLESHOOTING to ConnectorActionName.
* Add a shared isConnectorInTroubleshooting utility.
* Map TROUBLESHOOTING to the caution status variant.
* Update connector permission and action-availability helpers.
h3. Connector Service and State
* Add service methods for entering and ending troubleshooting mode.
* Add connector state actions for both lifecycle operations.
* Add effects that invoke the service and process successful responses.
* Update connector entities from server responses rather than constructing
local state transitions.
* Surface lifecycle failures through the existing connector error handling.
* Prevent duplicate requests while a lifecycle operation is already in progress.
h3. Connector Listing
* Add Enter troubleshooting and End troubleshooting menu actions.
* Use the backend-provided availableActions collection as the source of truth.
* Apply connector read/write permission checks.
* Emit or dispatch the selected connector entity through the existing listing
ownership boundary.
* Display TROUBLESHOOTING with the caution status treatment.
h3. Connector Details
* Display TROUBLESHOOTING in the connector details header.
* Use the same shared state-to-status-variant mapping as the listing.
* Expose lifecycle actions from the details or canvas information controls
where appropriate.
h3. Tests
Add coverage for:
* Connector state and action-name contracts.
* Troubleshooting-state detection.
* Status variant selection.
* Permission and available-action gating.
* Listing action visibility.
* Enter and end action emission.
* Service request construction.
* Effect success and failure behavior.
* Reducer updates from returned connector entities.
* Prevention of duplicate lifecycle requests.
h2. Out of Scope
* Troubleshooting banners on advanced pages.
* Route guards for troubleshooting-only pages.
* Component run-status changes.
* Processor advanced UI access.
* Connector-scoped Controller Service editing.
* Remote Process Group refresh.
* Alignment and provenance replay.
* Changes to backend lifecycle behavior.
h2. Acceptance Criteria
* ConnectorState includes TROUBLESHOOTING.
* ConnectorActionName includes ENTER_TROUBLESHOOTING and END_TROUBLESHOOTING.
* Enter troubleshooting is shown only when allowed by the backend and permitted
for the user.
* End troubleshooting is shown only when allowed by the backend and permitted
for the user.
* Lifecycle requests use the current connector revision and required request
metadata.
* Successful responses replace the stored connector entity.
* Failures are surfaced through the existing error mechanism.
* Duplicate lifecycle requests cannot be submitted while one is in progress.
* Connector listings and details render TROUBLESHOOTING with a caution
treatment.
* Existing connector states and actions remain unchanged.
* Frontend lint, strict type-check, unit tests, and production build pass.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)