knative / eventing

Event-driven application platform for Kubernetes
https://knative.dev/docs/eventing
Apache License 2.0
1.41k stars 587 forks source link

Define generic service interface for a generic form based UI to create/configure Event Sources #816

Closed chirino closed 3 years ago

chirino commented 5 years ago

With #702 you can machine discover available event sources. Would be nice if that could be extended so that a machine could create those Event source CRDs too. Basically thinking you could have a service which can drive a generic form builder type UI.

Once you have a fully configured/validated set of form fields, the service gives you back the CRD for that event source. This could be used by a generic UI to drive configuring 3rd party event sources that it never knew about.

chirino commented 5 years ago

If you guys think something like this is in scope for this eventing working group, we could extract and contribute an interface that's similar that we have been using in the Syndesis project that allows 3rd party UI driven configuration of event sources.

evankanderson commented 5 years ago

/area ux-discussion

I think this is an interesting area for exploration... could you do a short proposal/presentation for the 2/27 eventing WG meeting?

chirino commented 5 years ago

Sure. I'll also try to extract the gist of API interface into an openapi document so it can be shared at the meeting.

chirino commented 5 years ago

Initial pass at extracting that api is at: https://app.swaggerhub.com/apis/chirino/event-source-config/1.0.0?loggedInWithGitHub=true#/default/validate

derberg commented 5 years ago

hey, just curious question as in Kyma we have some experience in rendering specs, like https://asyncapi.com/asyncapi-react/ or the JSON Schemas of information passed as part of https://www.openservicebrokerapi.org/ (where we use https://github.com/mozilla-services/react-jsonschema-form)

looking on your example, do I get it right, that you suggest it makes sense to use openapi for events registry?

chirino commented 5 years ago

react-jsonschema-form seems really interesting, if we standardize on that, then we can further reduce the complexity of the proposed example.

Basically, if we could provide both the jsonschema and an optional UISchema for an event source, we should be 80% of the way there. Both those should be static to the source, so perhaps we just annotate the Event Source CRD with those schemas.

The only features that api covers that would not be cover are:

So for that last 20% perhaps we can come up with a simpler optional API which can supplement that info.

epicfaace commented 5 years ago

@chirino FYI, react-jsonschema-form does have the "conditionally showing fields based on field values" functionality, see https://react-jsonschema-form.readthedocs.io/en/latest/dependencies/#dynamic

akashrv commented 5 years ago

/kind feature-request

n3wscott commented 4 years ago

This might be what the Discovery API is also trying to help with.

akashrv commented 4 years ago

@nachocano

github-actions[bot] commented 3 years ago

This issue is stale because it has been open for 90 days with no activity. It will automatically close after 30 more days of inactivity. Reopen the issue with /reopen. Mark the issue as fresh by adding the comment /remove-lifecycle stale.