UNPKG

adaptorex

Version:

Connect all your live interactive storytelling devices and software

426 lines 18 kB
{ "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"} } } } }