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

   # 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.
   


-- 
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