spring-cloud / spring-cloud-dataflow

A microservices-based Streaming and Batch data processing in Cloud Foundry and Kubernetes
https://dataflow.spring.io
Apache License 2.0
1.11k stars 581 forks source link

Improve UX for application properties #4188

Closed dturanski closed 3 years ago

dturanski commented 3 years ago

Problem description:

The newest release of apps use a combination of properties, some are required, some are optional. More properties are exposed now, but we actually would be including even more. Take this stream definition for example:

s3 --spring.cloud.function.definition=s3Supplier,taskLaunchRequestFunction --file.consumer.mode=ref --s3.common.endpoint-url=http:<<lan-ip-address>:9000 --s3.common.path-style-access=true --s3.supplier.remote-dir=mybucket --s3.supplier.local-dir=/root/scdf/download --cloud.aws.credentials.accessKey=minio --cloud.aws.credentials.secretKey=minio123 --cloud.aws.region.static=us-east-1 --cloud.aws.stack.auto=false --task.launch.request.taskName=fileingest --task.launch.request.argExpressions='localFilePath=payload' | tasklauncher --spring.cloud.dataflow.client.server-uri=http://dataflow-server:9393

There are several categories of properties pertaining to the s3 source here:

Additionally, this, sftp source, ftp source support a persistent metadata store, we currently include metadata for several persistent metadata store implementations, not used in this stream definition (we may want to rethink this).

Presenting all these properties in a flattened form is problematic.

s3 property sheet 1: image

s3 property sheet continued:

image

Solution description:

We should prototype an improved UI for working with app properties. One proposal is to group the properties by category. So the user can understand the context of each group and expand each group as needed.

A good approach is to drive this from the UX we want, and make back end changes as necessary.

Description of alternatives:

Model after Preferences or Settings idioms. Show the most relavant/core properties with a way to select optional or additional properties, similar to the common Advanced... button.

dturanski commented 3 years ago

@oodamien - I discussed further with @markpollack Here's a very basic POC of the basic structure to start with, but should use something like an accordian widget, collapsible section for each group, etc. https://github.com/dturanski/grouped-properties-concept

sabbyanandan commented 3 years ago

Possibly also relates to https://github.com/spring-cloud/spring-cloud-dataflow-ui/issues/797.