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]

Reply via email to