mcgilman opened a new pull request, #11900:
URL: https://github.com/apache/nifi/pull/11900

   - create processors, ports, process groups, remote process groups, funnels, 
labels, and connections on the Connector canvas while the Connector is in 
Troubleshooting and writable
   - delete the selection from the context menu or the Delete key, skipping 
components that cannot be deleted and removing outgoing connections of deleted 
components
   - reload the endpoints of a connection after it is created, deleted, or 
moved to a new destination
   - reconcile created components with any copy a poll already added
   - enable canvas editing from the Connector's current Troubleshooting state
   - move the new canvas item chip to ui/common so it emits outputs, and update 
the flow designer header to use it
   - extract the Connector canvas context menu into a service
   - keep selection and double-click ahead of drag on funnels, ports, process 
groups, remote process groups, and connection labels
   - keep a connection label on the same bend point when bend points are added 
or removed, and attach the label drag once so it works after the label is 
selected
   - validate dynamic path segments in create and delete requests
   
   <!-- Licensed to the Apache Software Foundation (ASF) under one or more -->
   <!-- contributor license agreements.  See the NOTICE file distributed with 
-->
   <!-- this work for additional information regarding copyright ownership. -->
   <!-- The ASF licenses this file to You under the Apache License, Version 2.0 
-->
   <!-- (the "License"); you may not use this file except in compliance with -->
   <!-- the License.  You may obtain a copy of the License at -->
   <!--     http://www.apache.org/licenses/LICENSE-2.0 -->
   <!-- Unless required by applicable law or agreed to in writing, software -->
   <!-- distributed under the License is distributed on an "AS IS" BASIS, -->
   <!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
implied. -->
   <!-- See the License for the specific language governing permissions and -->
   <!-- limitations under the License. -->
   
   # Summary
   
   [NIFI-16488](https://issues.apache.org/jira/browse/NIFI-16488)
   
   Adds component creation and deletion to the Connector canvas. When a 
Connector is in Troubleshooting and the user has write permission, the canvas 
supports the same create and delete interactions as the flow designer.
   
   ### Creation
   - Processors, input and output ports, process groups, remote process groups, 
funnels, and labels can be dragged from the canvas palette onto the Connector 
canvas.
   - Connections can be drawn between components, and the create connection 
dialog is reused.
   - The new canvas item chip moved to `ui/common` and now emits outputs 
instead of dispatching flow designer actions. The flow designer header uses the 
relocated chip.
   - Created components and connections are reconciled with any copy a poll 
already added, so a component is never shown twice.
   
   ### Deletion
   - The current selection can be deleted from the context menu or with the 
Delete key.
   - Components that cannot be deleted are skipped, using new pure 
`deletion.utils` helpers.
   - Deleting a component removes its outgoing connections from state.
   - The endpoints of a connection are reloaded after it is created, deleted, 
or moved to a new destination.
   
   ### Canvas interaction
   - The Connector canvas context menu was extracted into 
`ConnectorCanvasContextMenuService`, and the Delete command was added to it.
   - Canvas editing is enabled from the Connector's current Troubleshooting 
state.
   - On funnels, ports, process groups, remote process groups, and connection 
labels, selection and double-click are bound once on entered elements. They 
keep firing ahead of the drag behavior after a re-render.
   - A connection label stays on the same bend point when bend points are added 
or removed.
   - The connection label drag is attached once, and its handlers read the 
bound connection datum. The label can be dragged after it is selected and after 
connections are added or removed.
   
   ### Security
   - Every dynamic path segment in create and delete requests is validated with 
`safeApiPath`.
   
   ### Testing
   - `npx nx test nifi`: 357 test files, 3,556 tests passing
   - New or expanded specs for `ConnectorEditService`, the Connector canvas 
actions, reducer, selectors, and effects, the context menu and commands 
services, the Connector canvas component, the canvas component (label anchoring 
on bend points), the funnel, port, process group, remote process group, and 
connection renderers, `deletion.utils`, the relocated new canvas item chip, and 
the flow designer header
   - Type-check, ESLint, and Prettier pass for the changed files
   
   # Tracking
   
   Please complete the following tracking steps prior to pull request creation.
   
   ### Issue Tracking
   
   - [Apache NiFi Jira](https://issues.apache.org/jira/browse/NIFI) issue 
created
   
   ### Pull Request Tracking
   
   - Pull Request title starts with Apache NiFi Jira issue number, such as 
`NIFI-00000`
   - Pull Request commit message starts with Apache NiFi Jira issue number, as 
such `NIFI-00000`
   - Pull request contains [commits 
signed](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits)
 with a registered key indicating `Verified` status
   
   ### Pull Request Formatting
   
   - Pull Request based on current revision of the `main` branch
   - Pull Request refers to a feature branch with one commit containing changes
   
   # Verification
   
   Please indicate the verification steps performed prior to pull request 
creation.
   
   ### Build
   
   - [ ] Build completed using `./mvnw clean install -P contrib-check`
     - [ ] JDK 21
     - [ ] JDK 25
   
   ### Licensing
   
   - [ ] New dependencies are compatible with the [Apache License 
2.0](https://apache.org/licenses/LICENSE-2.0) according to the [License 
Policy](https://www.apache.org/legal/resolved.html)
   - [ ] New dependencies are documented in applicable `LICENSE` and `NOTICE` 
files
   
   ### Documentation
   
   - [ ] Documentation formatting appears as expected in rendered files


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to