rfellows opened a new pull request, #11193: URL: https://github.com/apache/nifi/pull/11193
# Summary [NIFI-15854](https://issues.apache.org/jira/browse/NIFI-15854) Connector property descriptors of type `ASSET` and `ASSET_LIST` previously rendered as plain text inputs in the connector configuration wizard, with no way to upload, browse, or remove files. Users could not configure connectors that require uploaded assets (keystores, credentials JSON, certificates, etc.) without manually constructing value references. This change adds a first-class asset-upload experience to the wizard so those property types can be configured end-to-end from the UI. ## Changes - New `AssetUpload` component (`libs/shared/src/components/asset-upload/`) — a reusable, reactive-form-friendly file upload control that presents a drop zone, a Browse button, the list of uploaded assets, in-flight upload progress bars, and a dismiss affordance for failed uploads. Implements `ControlValueAccessor` so it can be bound directly with `[formControl]`. Supports both single-file and multi-file modes via a `multiple` input and accepts optional `allowedFileTypes` and `maxFileSize` constraints. - New `DragAndDropDirective` (`libs/shared/src/directives/drag-and-drop/`) — applies `drop-allowed` / `drop-invalid` host classes during dragover, validates dropped file count, type, and size against the host's configured constraints, and emits `filesDropped` (FileList) and `invalidDrop` (string) events. File-extension matching is case-insensitive. - `ConnectorPropertyInput` now renders `<asset-upload>` for property descriptors of type `ASSET` (single) and `ASSET_LIST` (multi). Two predicates (`shouldUseAssetUpload` and `isMultipleAssets`) drive the conditional render, and three forwarder methods (`onAssetFilesSelected`, `onAssetDeleteRequested`, `onDismissFailedUpload`) re-emit the child events on the component's existing outputs so the parent `connector-configuration-step` can drive uploads via the existing `UploadService` and `ConnectorConfigurationService.createAssetUploadRequest`. - The asset block surfaces validation through bare `<mat-error>` elements for the existing `required`, `assetContentMissing`, and `verificationError` validators, plus a `<mat-hint>` for the property description. The description hint is suppressed while a touched validation error is visible to avoid duplicated guidance. - Dead `shouldUseTextInput()` helper removed from `ConnectorPropertyInput`. - Barrel exports added in `libs/shared/src/components/index.ts` and `libs/shared/src/directives/index.ts`. ## Out of scope This change is purely the wizard UI surface for asset properties. It deliberately does not touch: - The `POST /connectors/{id}/assets` HTTP contract — already handled by `UploadService`. - The wizard store — `addAsset`, `removeAsset`, `currentAssets`, and `assetUploadProgress` were already in place. - The serialization of form values to `ConnectorValueReference` in `value-reference.helper.ts`. - The `assetContentMissing` validator in `connector-validation.utils.ts`. - The parent template wiring in `connector-configuration-step.component.html`, which already binds the asset-related inputs and outputs. -- 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]
