[ 
https://issues.apache.org/jira/browse/NIFI-16402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matt Gilman reassigned NIFI-16402:
----------------------------------

    Assignee: Matt Gilman

> 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
>            Assignee: Matt Gilman
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> 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
(v10.3.26#10030026)

Reply via email to