See the following example JSON snippet from the /plans endpoint:
{
"name": "count",
"description": "Reads from a number of devices.\n Wraps bluesky.plans.count(det, num, delay, md=metadata) exposing only serializable\n parameters and metadata.",
"parameter_schema": {
"additionalProperties": false,
"properties": {
"detectors": {
"items": {
"enum": [
"sample_stage",
"sample_det",
"oav",
"synchrotron",
"panda"
],
"type": "bluesky.protocols.Readable"
},
"title": "Detectors",
"type": "array",
"uniqueItems": true
},
...
The detector type is listed as "bluesky.protocols.Readable", JSONForms does not seem to be compatible with arbitrary types in this way. See the following error:
Uncaught Error: schema is invalid: data/properties/detectors/items/type must be equal to one of the allowed values, data/properties/detectors/items/type must be array, data/properties/detectors/items/type must match a schema in anyOf, data/properties/detectors/items must be array, data/properties/detectors/items must match a schema in anyOf
When I change the type to "string" I get a form rendered.
@tpoliaw suggested moving the bluesky type to a non-standard field in #522, which may be a good idea given that the current state of affairs requires special casing in any clients.
Acceptance Criteria
- Clients reading plan schemas do not need insider knowledge to determine device parameter types
See the following example JSON snippet from the
/plansendpoint:{ "name": "count", "description": "Reads from a number of devices.\n Wraps bluesky.plans.count(det, num, delay, md=metadata) exposing only serializable\n parameters and metadata.", "parameter_schema": { "additionalProperties": false, "properties": { "detectors": { "items": { "enum": [ "sample_stage", "sample_det", "oav", "synchrotron", "panda" ], "type": "bluesky.protocols.Readable" }, "title": "Detectors", "type": "array", "uniqueItems": true }, ...The detector type is listed as
"bluesky.protocols.Readable", JSONForms does not seem to be compatible with arbitrary types in this way. See the following error:When I change the type to
"string"I get a form rendered.@tpoliaw suggested moving the bluesky type to a non-standard field in #522, which may be a good idea given that the current state of affairs requires special casing in any clients.
Acceptance Criteria