sartography / spiff-arena

SpiffWorkflow is a software development platform for building, running, and monitoring executable diagrams
https://www.spiffworkflow.org/
GNU Lesser General Public License v2.1
75 stars 45 forks source link

Enable custom frontends that don't use RJSF #1383

Open mogul opened 7 months ago

mogul commented 7 months ago

Story

In order to provide workflow services to my app which has a custom frontend, I want spiffworkflow-backend to provide UI cues for jsonschema forms that do not presume any particular frontend language stack or framework is in use.

Background

The form editor and display of forms in spiff-arena's included frontend is based on react-jsonschema-form. That also means the ui-form-file-name element you get via the API... image

...is RJSF-flavored.

The problem

Our org operates a bunch of apps using a bunch of different language stacks for their app and different frameworks for their frontend. If you want to integrate SpiffWorkflow's backend with one of these apps that doesn't use React, then there's a pretty big hill to climb.

As an example from one team's perspective: Their app uses Django (meaning, it's written in Python). They need forms that they generate to conform to the US Web Design Standards (USWDS). They can pull in django-jsonforms and present a form for the jsonschema that Spiff provides for a given task. However, they would not get UI cues from SpiffWorkflow that are useful.

Other options

So: Is there any openness to embedding json-editor or jsonforms.io (or something else that's not framework-dependent) as the basis for forms in the SpiffWorkflow frontend/backend instead of RJSF?

mogul commented 7 months ago

Noting here that I stumbled across an RJSF option that might work for that particular team.

If this RJSF adapter pattern generalizes to other languages and frameworks, maybe all that's needed from Spiff is a list of pointers to them in the docs. 🤔

mogul commented 7 months ago

I found a list of lots of related options for both form libraries and form editors.