You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2026/10/13 18:39:00 UTC

[jira] [Commented] (NIFI-16449) Promote canvas Create/Edit dialogs to reusable output-driven components

    [ https://issues.apache.org/jira/browse/NIFI-16449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18126817#comment-18126817 ] 

ASF subversion and git services commented on NIFI-16449:
--------------------------------------------------------

Commit 8306a225531b39b31b8ec65013b1aa68437880c2 in nifi's branch refs/heads/main from Matt Gilman
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=8306a225531 ]

NIFI-16449: Promote canvas create dialogs to reusable output-driven c… (#11798)

* NIFI-16449: Promote canvas create dialogs to reusable output-driven components

Move the flow-designer create, group, and import dialogs into ui/common so they emit typed requests instead of dispatching page NgRx. Flow-designer effects still own persistence, and the shared request types live in flow-shared.

* NIFI-16449: Addressing review feedback.

* NIFI-16449: Addressing review feedback.

> Promote canvas Create/Edit dialogs to reusable output-driven components
> -----------------------------------------------------------------------
>
>                 Key: NIFI-16449
>                 URL: https://issues.apache.org/jira/browse/NIFI-16449
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Core UI
>            Reporter: Matt Gilman
>            Assignee: Matt Gilman
>            Priority: Major
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> h2. Background
> Canvas component Create/Edit dialogs currently have mixed ownership.
> Create dialogs are located under the legacy flow-designer feature and dispatch flow-designer NgRx actions directly. Although Edit dialogs are under ui/common/component-dialogs, some still depend on page-specific state or behavior.
> This prevents the reusable canvas and connector canvas from using these dialogs with their own state, effects, API boundaries, error contexts, and saving state.
> NIFI-16447 exposes typed reusable-canvas mutation intent, including createConnectionRequested, but connection creation cannot be completed cleanly until the Create Connection dialog emits intent instead of dispatching flow-designer actions.
> h2. Goals
>  * Make canvas Create/Edit dialogs reusable by flow designer, connector canvas, and other canvas hosts.
>  * Make dialogs emit typed user intent without dispatching page-specific NgRx actions.
>  * Let each host own persistence, saving state, error handling, and response reconciliation.
>  * Preserve existing flow-designer behavior and appearance.
> h2. Scope
> h3. Shared dialog placement
> Move or consolidate the following flow-designer Create dialogs under ui/common/component-dialogs:
>  * Create Processor
>  * Create Port
>  * Create Process Group
>  * Create Remote Process Group
>  * Create Connection
> Review related component-creation dialogs, including label creation/editing, grouping, and registry import, and promote those required by reusable-canvas hosts.
> h3. Dialog contracts
>  * Replace direct Store dispatch with typed outputs.
>  * Receive saving state, breadcrumbs, extension metadata, child ports, defaults, and other host-owned data through inputs or callbacks.
>  * Keep form construction and validation inside the dialog.
>  * Keep API requests and NgRx actions outside the dialog.
>  * Support host-specific error contexts without coupling the dialog to one page.
>  * Use canonical entity and request types from shared flow contracts.
> h3. Flow designer integration
>  * Open shared dialogs from flow-designer effects.
>  * Translate dialog outputs into existing flow-designer actions.
>  * Preserve current behavior, appearance, defaults, error handling, and navigation.
> h3. Connector canvas integration
>  * Open shared dialogs from connector effects.
>  * Translate dialog outputs into connector-scoped typed actions.
>  * Complete createConnectionRequested integration introduced by NIFI-16447.
>  * Use connector-scoped services, saving state, error context, and revision-aware reconciliation.
>  * Keep mutation commands gated by troubleshooting state and permissions.
> h3. Edit dialogs
> Review the existing shared Edit dialogs and remove remaining page-specific Store dispatch or state dependencies so both canvas hosts can use the same components.
> h2. Out of Scope
>  * Entering or ending troubleshooting mode.
>  * Changes to backend REST semantics.
>  * New component operations such as start, stop, enable, or disable.
>  * Visual redesign of the dialogs.
>  * Changes to connection eligibility rules.
> h2. Acceptance Criteria
>  * Shared Create/Edit dialogs do not dispatch flow-designer or connector NgRx actions directly.
>  * Dialogs expose typed outputs for save/create intent.
>  * Flow designer retains its current behavior and appearance.
>  * Connector canvas can create a connection through its own actions, effects, service, and reducer.
>  * Connector requests use the local client ID and canonical request payloads.
>  * Successful connector requests reconcile typed entity collections.
>  * Failed connector requests retain or restore optimistic UI state and use the connector error context.
>  * Dialog cancellation cleans up temporary canvas previews.
>  * Unit tests cover both flow-designer and connector-host integration.
>  * Frontend lint, strict type-check, unit tests, and production build pass.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)