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)

Reply via email to