adaptorex
Version:
Connect all your live interactive storytelling devices and software
426 lines • 18 kB
JSON
{
"settings": {
"type": "object",
"title": "Socket.IO Settings",
"additionalProperties": false,
"options": {
"disable_edit_json": true
},
"properties": {}
},
"collections": {
"namespaces": {
"title": "Namespace",
"type": "object",
"additionalProperties": false,
"required": [
"name",
"settings"
],
"properties": {
"name": {
"type": "string"
},
"settings": {
"type": "object",
"additionalProperties": false,
"properties": {
"namespace": {
"type": "string"
},
"url": {
"title": "namespace url",
"$ref":"#/definitions/webhooks"
},
"add_metadata": {
"title": "add meta data",
"type": "boolean",
"format": "checkbox",
"description": "Wether to add metadata to all messages and responses. All messages will be of type object. Message data will be wrapped in data property"
},
"level": {
"type": "string"
},
"argument": {
"title": "level argument",
"type": "object",
"additionalProperties": false,
"required": [
"name",
"type"
],
"options": {
"disable_properties": true
},
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"id_pattern": {
"type": "object",
"title": "room id pattern",
"default": {
"length": 8,
"characters": "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
},
"properties": {
"length": {
"type": "number"
},
"characters": {
"type": "string"
}
}
}
}
},
"rooms": {
"type": "array",
"readOnly": true,
"format": "table",
"options": {
"disable_array_add": true,
"disable_array_delete": true,
"disable_array_delete_all_rows": true,
"disable_array_delete_last_row": true,
"disable_array_reorder": true
},
"items": {
"type": "object",
"additionalProperties": {
"readOnly": true
},
"options": {
"disable_edit_json": true,
"disable_properties": true
},
"title": "room",
"properties": {
"id": {
"type": "string",
"readOnly": true
},
"name": {
"type": "string",
"readOnly": true
}
}
}
}
}
}
},
"definitions": {
"socket_response": {
"type": "string",
"description": "On match, respond to the incoming message."
}
},
"action_variables": {
"onSocketioMessage": {
"room": {
"type": "string"
},
"topic": {
"type": "string"
},
"match": {
},
"message": {
"type": [
"string",
"number",
"integer",
"object",
"array"
]
}
}
},
"actions": {
"sendSocketioMessage": {
"title": "Send Socket.IO Message",
"type": "object",
"required": [
"namespace",
"topic",
"message"
],
"documentation":"https://docs.adaptorex.org/basics/actions/socketio/sendSocketioMessage.html",
"default": {
"room":"",
"topic": "",
"message": "",
"add_metadata": false
},
"template": "{return { title:`socketio ${action.name}`, subtitle:`${payload.namespace} send ${payload.topic} to room ${payload.room || 'broadcast'}`, body: [{text: payload.message}]}}",
"additionalProperties": false,
"properties": {
"namespace": {
"$ref": "#/definitions/socketio_namespaces"
},
"room": {
"type": "string"
},
"topic": {
"type": "string"
},
"message": {
"type": [
"string",
"number",
"boolean"
],
"format": "textarea"
},
"add_metadata": {
"title": "add meta data",
"type": "boolean",
"format": "checkbox",
"description": "Include meta data like timestamp to message and wrap data in payload property."
}
}
},
"onSocketioMessage": {
"type": "object",
"title": "On Socket.IO Message",
"mode": "listen",
"documentation":"https://docs.adaptorex.org/basics/actions/socketio/onSocketioMessage.html",
"resolveAdaptorVariables": false,
"required": [
"namespace",
"topic"
],
"default": {
"room": "",
"topic": "",
"if": []
},
"additionalProperties": false,
"properties": {
"namespace": {
"$ref": "#/definitions/socketio_namespaces"
},
"room": {
"type": "string"
},
"topic": {
"type": "string",
"isAdaptorContent": false
},
"if": {
"type": "array",
"title": "if",
"items": {
"title": "condition",
"oneOf": [
{
"title": "Equals",
"description": "If message equals the or any of the following values",
"type": "object",
"additionalProperties": false,
"required": [
"equals"
],
"properties": {
"field": {
"$ref": "#/definitions/field"
},
"equals": {
"$ref": "#/definitions/equals"
},
"case_sensitive": {
"type": "boolean",
"format": "checkbox",
"title": "case sensitive"
},
"respond": {
"$ref": "#/definitions/socket_response"
},
"next": {
"$ref": "#/definitions/next"
}
}
},
{
"title": "Contains",
"description": "If message contains the or any of the following values",
"type": "object",
"additionalProperties": false,
"required": [
"contains"
],
"properties": {
"field": {
"$ref": "#/definitions/field"
},
"contains": {
"$ref": "#/definitions/contains"
},
"case_sensitive": {
"type": "boolean",
"format": "checkbox",
"title": "case sensitive"
},
"respond": {
"$ref": "#/definitions/socket_response"
},
"next": {
"$ref": "#/definitions/next"
}
}
},
{
"title": "Less Than",
"description": "If message is value that is less than",
"type": "object",
"default": {
"lessThan": ""
},
"additionalProperties": false,
"properties": {
"field": {
"$ref": "#/definitions/field"
},
"lessThan": {
"$ref": "#/definitions/lessThan"
},
"respond": {
"$ref": "#/definitions/socket_response"
},
"next": {
"$ref": "#/definitions/next"
}
}
},
{
"title": "Greater Than",
"description": "If message is value that is greater than",
"type": "object",
"default": {
"greaterThan": ""
},
"additionalProperties": false,
"properties": {
"field": {
"$ref": "#/definitions/field"
},
"greaterThan": {
"$ref": "#/definitions/greaterThan"
},
"respond": {
"$ref": "#/definitions/socket_response"
},
"next": {
"$ref": "#/definitions/next"
}
}
},
{
"title": "Regular Expression",
"description": "If regular expression returns anything when used on incoming message",
"type": "object",
"default": {
"regex": ""
},
"additionalProperties": false,
"properties": {
"field": {
"$ref": "#/definitions/field"
},
"regex": {
"$ref": "#/definitions/regex"
},
"respond": {
"$ref": "#/definitions/socket_response"
},
"next": {
"$ref": "#/definitions/next"
}
}
},
{
"title": "Javascript function",
"description": "If javascript function returns true. Use value as function argument.",
"type": "object",
"default": {
"javascript": ""
},
"additionalProperties": false,
"properties": {
"field": {
"$ref": "#/definitions/field"
},
"javascript": {
"$ref": "#/definitions/javascript"
},
"respond": {
"$ref": "#/definitions/socket_response"
},
"next": {
"$ref": "#/definitions/next"
}
}
},
{
"title": "Database Query",
"description": "If database find query returns a valid document. You can use event 'payload' action var in query: [[action.payload]]",
"type": "object",
"default": {
"find": ""
},
"additionalProperties": false,
"properties": {
"find": {
"$ref": "#/definitions/find"
},
"respond": {
"$ref": "#/definitions/socket_response"
},
"next": {
"$ref": "#/definitions/next"
}
}
}
]
}
},
"else": {
"type": "object",
"additionalProperties": false,
"properties": {
"respond": {
"$ref": "#/definitions/socket_response"
},
"next": {
"$ref": "#/definitions/next"
}
}
},
"priority":{
"type": "number",
"default": 1,
"description": "Ignore this if there is an On Socket Message action with the same members of higher priority in a different path or session. Otherwise prefer this action. If priority is the same, latest 'On Socket Message' is preferred.",
"enum": [
0,
1,
2
],
"options": {
"enum_titles": [
"low",
"normal",
"high"
]
}
},
"keep_listening": {"$ref":"#/definitions/keep_listening"}
}
}
}
}