Specification Audit
Active Version | v2.0 | CDAP >= v3.0 | Initial Version |
---|---|---|---|
Dev Version | v2.1 | CDAP > 3.4 | Adding label to metadata section to display better plugin names. CDAP-5340 |
...
‘Groups’ refers to collection of configurations of a plugin. An example structure of a configuration JSON would look like this - Sample JSON
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "metadata": {...}, "inputs": null, "configuration-groups": [ {group1}, {group2}, ... ], "output": [ {configuration-output-1}, {configuration-output-2}, ... ] } |
...
In the above mentioned sample JSON, fields 1 & 2 are configurations of CustomPlugin defined in the backend. We could now configure them in the JSON so that it gets easier to use view/edit them in hydrator.
Configurations for a field
Configurations of a field are the set of properties that we define in the JSON, that governs what/how that particular plugin field gets rendered in hydrator.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "configuration-groups": [ { "label": "My Group Title", "properties": [ { "name": "Field1", "widget-type": "numberbox", "widget-attributes": { "default": "1" }, "plugin-function": { "method": "POST", "endpoint": "getSchema", "output-property": "schema" } }, { "name": "Field2", "widget-type": "json-editor" } ] } ], "output": [ {output-property1} {output-property2} ... ] } |
Widgets
A widget in UI represents a component that we could use to set the value of a property of a plugin. It could be anything representable in HTML. For instance if our CustomPlugin has a property that requires a JSON value, we could use a json-editor to set value to it. A widget, in general, is a component that we can use to represent a property of a plugin to attach a value to it. The following are the list of widgets that we right now have in CDAP that could be readily be used.
Widget-type | Description | Attributes | Output data type | Sample JSON | |||||||
textbox | Default html textbox to enter any string |
| string |
| |||||||
number | Default html number textbox. Can enter only valid numbers. | default : default value for the widgetmin : minimum value for the number boxmax : maximum value for the number box | int |
| |||||||
passwordbox | Default html password box. | No attributes | string |
| |||||||
datetime | Date time picker. Used to set date (in string) for any property | default, format (format could be ISO, long, short or full format dates.Reference | string |
| |||||||
csv | Comma separated values. Each value is entered in a separate box | No attributes | comma-separated string |
| |||||||
dsv | Delimiter-separated values; each value is entered in a separate box |
| delimiter-separated string |
| |||||||
json-editor | Json editor to pretty-print and auto format JSON while typing |
| string |
| |||||||
javascript-editor, python-editor | An editor to write Javscript (javascript-editor) or Python (python-editor) as a value for a property. |
| string |
| |||||||
keyvalue | A key-value editor which allows you to construct map. | delimiter : delimiter for the key-value pairskv-delimiter : delimiter between key and value | string |
| |||||||
keyvalue-dropdown | Similar to keyvalue widget, but with a drop-down value list | delimiter : delimiter for the key-value pairskv-delimiter : delimiter between key and valuedropdownOptions : list of drop-down options to display | string |
| |||||||
select | An HTML drop-down with a list of values; allows one choice from the list | values : list of values for the drop-downdefault : default value from the list | string |
| |||||||
dataset-selector, stream-selector | A type-ahead textbox with a list of datasets (dataset-selector ) or streams (stream-selector ) from the CDAP instance | No attributes | string |
| |||||||
ds-multiplevalues | A delimiter separated values widget that allows to specify a list of values separated by a delimiter. |
values-delimiter : delimiter between valuesdelimiter : delimiter between set of valuesplaceholders : list of placeholders for each value textboxes | string |
|
Versioning
...