mjordan / islandora_workbench

A command-line tool for managing content in an Islandora 2 repository
MIT License
24 stars 41 forks source link

Provide Open API schema of the Workbench config #710

Open joecorall opened 11 months ago

joecorall commented 11 months ago

I am exploring creating an interface other than the command line to use workbench.

One thing that will make integrating with workbench a bit easier is if the config is defined in a machine-readable way.

The config docs are great for humans to read, but a bit harder for machines.

If we could create an OpenAPI spec for those config parameters, we could more easily allow machines to understand the config. We could also generate similar docs as is output in the markdown tables currently from the OpenAPI spec. Then, updating the config docs would just be editing the JSON for the spec.

Future work

If it's agreed this is useful to add, we could explore having the openapi spec live in the actual islandora workbench, and use the spec to validate config values sent to workbench. This would allow the code and documentation to get updated simultaneous when changes occur to the config spec.

mjordan commented 11 months ago

I like where this is going. What other types of interfaces were you imagining? I had thought about "Workbench as a Service", basically having a website that ran Workbench, all repo managers would need to do is submit their config to it and as long as the payload files had http locations, the WaaS service would push content to the target Islandora. Maybe allow uploading of "local" files if desired.

joecorall commented 11 months ago

all repo managers would need to do is submit their config to it and as long as the payload files had http locations, the WaaS service would push content to the target Islandora

@mjordan that is exactly what I was thinking, too :)

As a PoC I plan on doing this via a Drupal module. This OpenAPI spec will basically just help with creating the form/UI and validating the config the repository manager submits.

mjordan commented 11 months ago

Yes, this sounds excellent!

mjordan commented 11 months ago

You should talk this up on Slack, I'm sure many people who dislike running workbench locally would be happy to provide some use cases, etc.

mjordan commented 11 months ago

Not sure if you've seen https://mjordan.github.io/islandora_workbench_docs/workflows/ but might be some ideas there.