Matt Gilman created NIFI-16402:
----------------------------------
Summary: Enable connector-scoped Controller Service management
during troubleshooting
Key: NIFI-16402
URL: https://issues.apache.org/jira/browse/NIFI-16402
Project: Apache NiFi
Issue Type: Task
Components: Core UI
Reporter: Matt Gilman
h2. Background
The connector-scoped Controller Services page is currently read-only. During
troubleshooting, users need to create and manage Controller Services within the
connector's managed process-group hierarchy.
Outside troubleshooting mode, the page must remain read-only. All mutations
must use connector-scoped APIs and respect process-group permissions, service
ownership, dependencies, and revision handling.
h2. Goals
* Make connector-scoped Controller Services editable during troubleshooting.
* Preserve read-only inspection outside troubleshooting.
* Support the complete Controller Service management lifecycle.
* Use connector-scoped service APIs and state.
* Enforce process-group and component permissions.
* Keep state synchronized after each mutation.
h2. Scope
h3. Page Behavior
* Determine editability from the current connector's troubleshooting state.
* Pass readOnly=false to the Controller Service table only while
troubleshooting.
* Preserve read-only configuration viewing outside troubleshooting.
* Show the New Controller Service action only when troubleshooting is active
and the current process group is writable.
* Respect whether a service is defined in the current group or inherited from
an ancestor.
* Prevent modification of inherited membership from the wrong process-group
scope.
h3. Supported Operations
Add troubleshooting support for:
* Create Controller Service.
* Configure Controller Service.
* Enable Controller Service.
* Disable Controller Service.
* Change Controller Service version.
* Delete Controller Service.
* Clear Controller Service bulletins.
* View Controller Service state.
* Open Controller Service documentation.
* Open Controller Service advanced UI when supported.
h3. State and Effects
* Add typed actions and effects for each supported mutation.
* Reuse the established Controller Service dialogs and request contracts.
* Preserve current revisions in update requests.
* Track the service currently being saved or deleted.
* Update or reload the Controller Service collection after successful
operations.
* Clear saving state on both success and failure.
* Surface failures through the Controller Services error context.
* Prevent overlapping mutations for the same service.
h3. Service Scope and Permissions
* Use connector-scoped endpoints for loading individual services and service
collections.
* Resolve services from the connector's managed process-group tree.
* Require active troubleshooting for mutations.
* Require write permission on the applicable process group or service.
* Preserve read access outside troubleshooting.
* Do not expose access-policy management when the connector scope does not
support it.
h3. Advanced UI
* Add a connector-scoped Controller Service advanced UI route.
* Protect the route with the troubleshooting-state guard.
* Resolve connector, process-group, and service parameters.
* Load the Controller Service through the connector-scoped API.
* Return users to the Controller Services page when the UI closes or activation
is denied.
* Handle unsupported services and loading failures safely.
h3. Tests
Add coverage for:
* Read-only behavior outside troubleshooting.
* Editable behavior during troubleshooting.
* New-service action visibility.
* Current-group and inherited-service permissions.
* Create, configure, enable, disable, version-change, delete, and
bulletin-clear actions.
* Saving-state lifecycle.
* Success and failure effects.
* Collection reconciliation after mutation.
* Advanced UI route protection and parameter resolution.
* Unsupported advanced UI.
* Connector entity polling while the page is mounted.
h2. Out of Scope
* Processor run-status operations.
* General connector canvas editing.
* Remote Process Group refresh.
* Alignment commands.
* Provenance replay.
* Controller Service management outside the connector's managed process-group
hierarchy.
* Changes to backend Controller Service behavior.
h2. Acceptance Criteria
* The Controller Services page remains read-only outside TROUBLESHOOTING.
* The page becomes editable only while troubleshooting is active.
* Users can create services when the current process group is writable.
* Users can configure, enable, disable, change version, delete, and clear
bulletins when permitted.
* Inherited services cannot be incorrectly modified as current-group services.
* All mutations use typed requests with current revisions.
* Saving indicators identify the service being modified.
* State is reconciled after successful operations.
* Failures clear saving state and surface through existing error handling.
* Supported services can open connector-scoped advanced UI.
* Advanced UI routes require active troubleshooting.
* Existing read-only viewing and documentation behavior remains available.
* Frontend lint, strict type-check, unit tests, and production build pass.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)