Skip to content

NIFI-15793 - Connector listing#11112

Merged
rfellows merged 3 commits intoapache:mainfrom
rfellows:NIFI-15793
Apr 9, 2026
Merged

NIFI-15793 - Connector listing#11112
rfellows merged 3 commits intoapache:mainfrom
rfellows:NIFI-15793

Conversation

@rfellows
Copy link
Copy Markdown
Contributor

@rfellows rfellows commented Apr 7, 2026

NIFI-15793 - Connector listing

Summary

This change adds a Connectors listing experience to the NiFi frontend: a lazy-loaded feature with NgRx-backed state, REST integration for connector lifecycle operations, and a Material table UI with sorting, selection, validation feedback, and contextual actions. The feature is gated at build time via environment.enableConnectors so it can be compiled in for development while remaining off in production until the project is ready to expose it broadly.

In scope

  • Listing page: Toolbar (refresh, add connector), sortable table (name, type, bundle, state, validation errors, "edits not applied" indicator), row selection, action menu.
  • Create: New connectors through the existing extension-creation flow wrapped in a dedicated dialog.
  • Lifecycle actions: Start, Stop, Delete (with confirmations where appropriate).
  • Rename: Dedicated dialog with form validation.
  • Drain / cancel drain: With confirmation dialogs.
  • Discard working configuration: With confirmation.
  • Purge: End-to-end flow -- confirmation, submit, polling for status, completion/results presentation (dedicated NgRx slice).
  • Navigation & integration: Global nav entry as a sibling to Canvas, shown only when the feature flag allows and connectorsPermissions.canRead is satisfied; links for Manage Access Policies and View Documentation where applicable.
  • Extension types: Loading connector extension types to support creation and related UI.
  • Shared model & permissions: New connector-related types and permission helpers in libs/shared/ with unit tests.
  • Quality: Broad unit coverage for components, effects, and utilities; data-qa attributes on connector templates for stable test targeting (scoped to this feature).
  • Errors: New error context keys for connectors and the rename dialog.

Not in scope

The following are intentionally not implemented in this PR. Placeholders (e.g. TODOs surfaced via alert dialogs) exist where a future screen would plug in:

  • Connector configuration wizard / editor
  • Connector details view
  • Per-connector canvas (or equivalent deep design surface)

These are expected in follow-up work under separate changes.

What changed (high level)

Area Notes
libs/shared/ Types (ConnectorEntity, components, actions, state, bundle, etc.); helpers (canReadConnector, canModifyConnector, canOperateConnector, getConnectorAction, isConnectorActionAllowed, getConnectorActionDisabledReason); unit tests for permission utilities.
apps/nifi -- connectors feature Lazy route + CanMatchFn guard (connectorsFeatureGuard) tied to enableConnectors; ConnectorService (CRUD, run status, rename, drain, cancel drain, discard working config, purge); NgRx slices connectors-listing and purge-connector; UI: ConnectorsListing, ConnectorTable, CreateConnector, RenameConnectorDialog; eight spec files; data-qa hooks.
Environment enableConnectors: true in development, false in production.
NgRx / infra loadExtensionTypesForConnectors and related wiring; error context keys CONNECTORS, CONNECTOR_RENAME_DIALOG.

Design notes

  • Feature flag: The connectors area is hidden behind environment.enableConnectors so shipping the code does not imply enabling the UI in all environments.
  • Create dialog state: CreateConnector consumes NgRx selectors instead of MAT_DIALOG_DATA so dialog behavior stays aligned with global store state.
  • Shared permissions: Permission checks live in the shared library for reuse as the rest of the connectors UX grows.
  • Purge: Uses a polling pattern to track purge request status through completion.

Testing

  • Unit tests cover permission utilities, listing/purge effects and reducers where applicable, and UI components (per the added spec files).
  • data-qa attributes support automated or manual targeting of key connector UI elements.

@rfellows rfellows added the ui Pull requests for work relating to the user interface label Apr 7, 2026
Copy link
Copy Markdown
Contributor

@mcgilman mcgilman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR @rfellows! Noted a few things below.

Copy link
Copy Markdown
Contributor

@mcgilman mcgilman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates @rfellows! Noted a couple more things.

And I think this [1] was missed above.

[1] #11112 (comment)

Copy link
Copy Markdown
Contributor

@mcgilman mcgilman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates @rfellows!

@rfellows rfellows merged commit 7d4b153 into apache:main Apr 9, 2026
15 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ui Pull requests for work relating to the user interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants