Skip to content

serviceInputDefinition.inputColumns

Chris Churas edited this page Oct 23, 2024 · 4 revisions

The inputColumns attribute under serviceInputDefinition denotes what node and or edge columns should be sent to service app

List of columns that need to be created. For type node and edge only. Each element in this list is an object like this:

{
  "name": string,
  "description": string,
  "dataType": string,
  "allowMultipleSelection": boolean,
  "defaultColumnName": string,
  "columnName": string
}

Fields

name

The label text of the dropdown list. It will also be used as the column name in the generated data block.

description

A short description of the column. Used as a hint in the UI.

dataType

Data type of the attribute. When defined, Cytoscape Web uses it to filter the dropdown list. If omitted, the dropdown will contain all columns. Can be one of the following: list, number, wholenumber, list_of_number, list_of_wholenumber, string, long, integer, double, boolean, list_of_string, list_of_long, list_of_integer, list_of_double, list_of_boolean

allowMultipleSelection

Defaults to false, meaning only one column can be picked for each parameter. When set to true, all selected columns in the dropdown will be used to serialize the data.

defaultColumnName

(Optional) The default selection in the column name dropdown. If the column specified in field doesn't exist in node or edge table, no selection will be make.

columnName

Name of the column that should be automatically included. No UI control will be generated for this column. Treated like a preselected value for name attribute. If this column doesn't exist in the network, when a use run the app, Cytoscape Web will give an error tell this column is missing from the network. When columnName is defined, name, description, dataType and defaultColumnName will be ignored by Cytoscape Web.

Based on the declaration in the inputColumns attribute, the node or edge table will be serialized to a JSON object in this format and used as the value of the data attribute in the request:

{
   "columns": [{ "id": attribute_name, "type": attribute_datatype }],
   "rows": { "node_id": node_record }
}

Example columns and node_record

{
   "columns": [{"id": "col1", "type": "integer" }],
   "rows": {
             "1": { "col1": 10}
   }
}