diff --git a/definitions/draco_rest/data_types/rest_adapter_input.proto.json b/definitions/draco_rest/data_types/rest_adapter_input.proto.json index ee577f6..f5eb4c2 100644 --- a/definitions/draco_rest/data_types/rest_adapter_input.proto.json +++ b/definitions/draco_rest/data_types/rest_adapter_input.proto.json @@ -25,5 +25,5 @@ "linkedDataTypeIdentifiers": [ "OBJECT" ], - "type": "{ payload: T, headers: OBJECT<{}> }" + "type": "{ payload: T, headers: OBJECT<{}>, query_params: OBJECT<{}>, path_params: OBJECT<{}> }" } diff --git a/definitions/draco_rest/flow_types/rest.proto.json b/definitions/draco_rest/flow_types/rest.proto.json index 945ca79..4976d66 100644 --- a/definitions/draco_rest/flow_types/rest.proto.json +++ b/definitions/draco_rest/flow_types/rest.proto.json @@ -5,26 +5,26 @@ "name": [ { "code": "en-US", - "content": "Rest Endpoint" + "content": "Webhook" } ], "description": [ { "code": "en-US", - "content": "A REST API is a web service that lets clients interact with data on a server using standard HTTP methods like GET, POST, PUT, and DELETE usually returning results in JSON format." + "content": "A Webhook is an HTTP endpoint that listens for incoming requests from external services or clients, allowing you to react to events in real time using standard HTTP methods like GET, POST, PUT, and DELETE." } ], "documentation": [], "displayMessage": [ { "code": "en-US", - "content": "Trigger Rest-Flow on ${httpMethod} with a Request to ${httpURL}" + "content": "Webhook on ${httpMethod} at ${httpURL}" } ], "alias": [ { "code": "en-US", - "content": "http;rest;route;web;webhook" + "content": "webhook;http;rest;route;web" } ], "displayIcon": "tabler:world-www", diff --git a/definitions/draco_rest/functions/rest_control_respond.proto.json b/definitions/draco_rest/functions/rest_control_respond.proto.json index 79dfdf5..2cea857 100644 --- a/definitions/draco_rest/functions/rest_control_respond.proto.json +++ b/definitions/draco_rest/functions/rest_control_respond.proto.json @@ -36,6 +36,23 @@ ], "documentation": [] }, + { + "runtimeName": "http_schema", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Content Type" + } + ], + "description": [ + { + "code": "en-US", + "content": "Specifies the MIME type of the response payload, such as application/json, application/xml, or text/plain. This determines the expected format of the payload parameter." + } + ], + "documentation": [] + }, { "runtimeName": "payload", "defaultValue": null, @@ -48,7 +65,7 @@ "description": [ { "code": "en-US", - "content": "Contains the response payload, such as JSON, XML, form data, or binary content, depending on the Content-Type header." + "content": "Contains the response payload. For application/json the value must be an OBJECT, for all other content types a plain string is expected." } ], "documentation": [] @@ -82,9 +99,11 @@ } ], "displayIcon": "tabler:cube-send", - "signature": "(http_status_code: HTTP_STATUS_CODE, headers: OBJECT<{}>, payload: T): void", + "signature": "(http_status_code: HTTP_STATUS_CODE, headers: OBJECT<{}>, http_schema: S, payload: HTTP_PAYLOAD): void", "linkedDataTypeIdentifiers": [ "HTTP_STATUS_CODE", - "OBJECT" + "OBJECT", + "HTTP_SCHEMA", + "HTTP_PAYLOAD" ] } diff --git a/definitions/draco_rest/runtime_flow_types/rest.proto.json b/definitions/draco_rest/runtime_flow_types/rest.proto.json index 0ca6135..ba9dfe0 100644 --- a/definitions/draco_rest/runtime_flow_types/rest.proto.json +++ b/definitions/draco_rest/runtime_flow_types/rest.proto.json @@ -4,26 +4,26 @@ "name": [ { "code": "en-US", - "content": "Rest Endpoint" + "content": "Webhook" } ], "description": [ { "code": "en-US", - "content": "A REST API is a web service that lets clients interact with data on a server using standard HTTP methods like GET, POST, PUT, and DELETE usually returning results in JSON format." + "content": "A Webhook is an HTTP endpoint that listens for incoming requests from external services or clients, allowing you to react to events in real time using standard HTTP methods like GET, POST, PUT, and DELETE." } ], "documentation": [], "displayMessage": [ { "code": "en-US", - "content": "Trigger Rest-Flow on ${httpMethod} with a Request to ${httpURL}" + "content": "Webhook on ${httpMethod} at ${httpURL}" } ], "alias": [ { "code": "en-US", - "content": "http;rest;route;web;webhook" + "content": "webhook;http;rest;route;web" } ], "displayIcon": "tabler:world-www", diff --git a/definitions/draco_rest/runtime_functions/rest_control_respond.proto.json b/definitions/draco_rest/runtime_functions/rest_control_respond.proto.json index e6671e2..601c64d 100644 --- a/definitions/draco_rest/runtime_functions/rest_control_respond.proto.json +++ b/definitions/draco_rest/runtime_functions/rest_control_respond.proto.json @@ -35,6 +35,23 @@ ], "documentation": [] }, + { + "runtimeName": "http_schema", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Content Type" + } + ], + "description": [ + { + "code": "en-US", + "content": "Specifies the MIME type of the response payload, such as application/json, application/xml, or text/plain. This determines the expected format of the payload parameter." + } + ], + "documentation": [] + }, { "runtimeName": "payload", "defaultValue": null, @@ -47,7 +64,7 @@ "description": [ { "code": "en-US", - "content": "Contains the response payload, such as JSON, XML, form data, or binary content, depending on the Content-Type header." + "content": "Contains the response payload. For application/json the value must be an OBJECT, for all other content types a plain string is expected." } ], "documentation": [] @@ -81,9 +98,11 @@ } ], "displayIcon": "tabler:cube-send", - "signature": "(http_status_code: HTTP_STATUS_CODE, headers: OBJECT<{}>, payload: T): void", + "signature": "(http_status_code: HTTP_STATUS_CODE, headers: OBJECT<{}>, http_schema: S, payload: HTTP_PAYLOAD): void", "linkedDataTypeIdentifiers": [ "HTTP_STATUS_CODE", - "OBJECT" + "OBJECT", + "HTTP_SCHEMA", + "HTTP_PAYLOAD" ] } diff --git a/definitions/taurus/http/data_types/http_auth_place.proto.json b/definitions/taurus/http/data_types/http_auth_place.proto.json new file mode 100644 index 0000000..1c344f7 --- /dev/null +++ b/definitions/taurus/http/data_types/http_auth_place.proto.json @@ -0,0 +1,25 @@ +{ + "identifier": "HTTP_AUTH_PLACE", + "name": [ + { + "code": "en-US", + "content": "HTTP credential placement" + } + ], + "alias": [ + { + "code": "en-US", + "content": "http;method;get;post;put;delete;path;head" + } + ], + "displayMessage": [ + { + "code": "en-US", + "content": "HTTP credential placement" + } + ], + "genericKeys": ["T"], + "type": "T extends 'Bearer' ? 'Header' : T extends 'Basic' ? 'Header' : T extends undefined ? undefined : 'Header' | 'Url'", + "linkedDataTypeIdentifiers": [], + "rules": [] +} diff --git a/definitions/taurus/http/data_types/http_auth_type.proto.json b/definitions/taurus/http/data_types/http_auth_type.proto.json new file mode 100644 index 0000000..ebd8c0f --- /dev/null +++ b/definitions/taurus/http/data_types/http_auth_type.proto.json @@ -0,0 +1,24 @@ +{ + "identifier": "HTTP_AUTH_TYPE", + "name": [ + { + "code": "en-US", + "content": "HTTP credential variant" + } + ], + "alias": [ + { + "code": "en-US", + "content": "http;method;get;post;put;delete;path;head" + } + ], + "displayMessage": [ + { + "code": "en-US", + "content": "HTTP credential variant" + } + ], + "type": "'Bearer' | 'Basic' | 'X-API-Key' | string | undefined", + "linkedDataTypeIdentifiers": [], + "rules": [] +} diff --git a/definitions/taurus/http/data_types/http_auth_value.proto.json b/definitions/taurus/http/data_types/http_auth_value.proto.json new file mode 100644 index 0000000..fd57527 --- /dev/null +++ b/definitions/taurus/http/data_types/http_auth_value.proto.json @@ -0,0 +1,25 @@ +{ + "identifier": "HTTP_AUTH_VALUE", + "name": [ + { + "code": "en-US", + "content": "HTTP credential value" + } + ], + "alias": [ + { + "code": "en-US", + "content": "http;method;get;post;put;delete;path;head" + } + ], + "displayMessage": [ + { + "code": "en-US", + "content": "HTTP credential value" + } + ], + "genericKeys": ["T"], + "type": "T extends 'Basic' ? { username: string, password: string } : T extends undefined ? undefined : string", + "linkedDataTypeIdentifiers": [], + "rules": [] +} diff --git a/definitions/taurus/http/data_types/http_payload.proto.json b/definitions/taurus/http/data_types/http_payload.proto.json new file mode 100644 index 0000000..ac2f764 --- /dev/null +++ b/definitions/taurus/http/data_types/http_payload.proto.json @@ -0,0 +1,25 @@ +{ + "identifier": "HTTP_PAYLOAD", + "name": [ + { + "code": "en-US", + "content": "HTTP payload" + } + ], + "alias": [ + { + "code": "en-US", + "content": "http;method;get;post;put;delete;path;head" + } + ], + "displayMessage": [ + { + "code": "en-US", + "content": "HTTP payload" + } + ], + "genericKeys": ["T"], + "type": "T extends 'application/json' ? OBJECT<{}> : T extends undefined ? undefined : string", + "linkedDataTypeIdentifiers": ["OBJECT"], + "rules": [] +} diff --git a/definitions/taurus/http/data_types/http_schema.proto.json b/definitions/taurus/http/data_types/http_schema.proto.json new file mode 100644 index 0000000..3e4c3e1 --- /dev/null +++ b/definitions/taurus/http/data_types/http_schema.proto.json @@ -0,0 +1,24 @@ +{ + "identifier": "HTTP_SCHEMA", + "name": [ + { + "code": "en-US", + "content": "HTTP schema" + } + ], + "alias": [ + { + "code": "en-US", + "content": "http;method;get;post;put;delete;path;head" + } + ], + "displayMessage": [ + { + "code": "en-US", + "content": "HTTP schema" + } + ], + "type": "'application/json' | 'application/xml' | 'text/plain' | 'text/csv' | string | undefined", + "linkedDataTypeIdentifiers": [], + "rules": [] +} diff --git a/definitions/taurus/http/functions/http_request_send.proto.json b/definitions/taurus/http/functions/http_request_send.proto.json index 7eb3ac2..8e07ab8 100644 --- a/definitions/taurus/http/functions/http_request_send.proto.json +++ b/definitions/taurus/http/functions/http_request_send.proto.json @@ -20,35 +20,86 @@ "documentation": [] }, { - "runtimeName": "headers", + "runtimeName": "url", "defaultValue": null, "name": [ { "code": "en-US", - "content": "HTTP Headers" + "content": "Request URL" } ], "description": [ { "code": "en-US", - "content": "A collection of key-value pairs containing additional request metadata." + "content": "Specifies the endpoint address, including protocol, host, path, and query parameters, where the request is directed." } ], "documentation": [] }, { - "runtimeName": "url", + "runtimeName": "http_auth", "defaultValue": null, "name": [ { "code": "en-US", - "content": "Request URL" + "content": "Auth Type" } ], "description": [ { "code": "en-US", - "content": "Specifies the endpoint address, including protocol, host, path, and query parameters, where the request is directed." + "content": "Specifies the authentication variant to use, such as Bearer, Basic, X-API-Key, or a custom scheme. Use undefined to send the request without authentication." + } + ], + "documentation": [] + }, + { + "runtimeName": "http_auth_value", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Auth Value" + } + ], + "description": [ + { + "code": "en-US", + "content": "Provides the credentials for the selected authentication type. For Basic auth, supply an object with username and password; for all other types, provide a token or key string." + } + ], + "documentation": [] + }, + { + "runtimeName": "http_auth_place", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Auth Placement" + } + ], + "description": [ + { + "code": "en-US", + "content": "Defines where the authentication credentials are attached to the request. Bearer and Basic auth always use Header; custom schemes can be placed in the Header or as a URL query parameter." + } + ], + "documentation": [] + }, + { + "runtimeName": "http_schema", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Content Type" + } + ], + "description": [ + { + "code": "en-US", + "content": "Specifies the MIME type of the request payload, such as application/json, application/xml, or text/plain. This determines the expected format of the payload parameter." } ], "documentation": [] @@ -65,7 +116,24 @@ "description": [ { "code": "en-US", - "content": "Contains the request payload, such as JSON, XML, form data, or binary content, depending on the Content-Type header." + "content": "Contains the request payload. For application/json the value must be an OBJECT, for all other content types a plain string is expected." + } + ], + "documentation": [] + }, + { + "runtimeName": "headers", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "HTTP Headers" + } + ], + "description": [ + { + "code": "en-US", + "content": "An optional collection of key-value pairs containing additional request metadata such as custom headers." } ], "documentation": [] @@ -99,11 +167,16 @@ ], "deprecationMessage": [], "displayIcon": "tabler:world-www", - "signature": "(http_method: HTTP_METHOD, headers: OBJECT<{}>, url: HTTP_URL, payload: T): HTTP_RESPONSE", + "signature": "(http_method: HTTP_METHOD, url: HTTP_URL, http_auth: A, http_auth_value: HTTP_AUTH_VALUE, http_auth_place: HTTP_AUTH_PLACE, http_schema: S, payload: HTTP_PAYLOAD, headers?: OBJECT<{}>): HTTP_RESPONSE", "linkedDataTypeIdentifiers": [ "HTTP_METHOD", - "OBJECT", "HTTP_URL", + "HTTP_AUTH_TYPE", + "HTTP_AUTH_VALUE", + "HTTP_AUTH_PLACE", + "HTTP_SCHEMA", + "HTTP_PAYLOAD", + "OBJECT", "HTTP_RESPONSE" ] } diff --git a/definitions/taurus/http/runtime_functions/http_request_send.proto.json b/definitions/taurus/http/runtime_functions/http_request_send.proto.json index e2ca4a2..80839d8 100644 --- a/definitions/taurus/http/runtime_functions/http_request_send.proto.json +++ b/definitions/taurus/http/runtime_functions/http_request_send.proto.json @@ -19,35 +19,86 @@ "documentation": [] }, { - "runtimeName": "headers", + "runtimeName": "url", "defaultValue": null, "name": [ { "code": "en-US", - "content": "HTTP Headers" + "content": "Request URL" } ], "description": [ { "code": "en-US", - "content": "A collection of key-value pairs containing additional request metadata." + "content": "Specifies the endpoint address, including protocol, host, path, and query parameters, where the request is directed." } ], "documentation": [] }, { - "runtimeName": "url", + "runtimeName": "http_auth", "defaultValue": null, "name": [ { "code": "en-US", - "content": "Request URL" + "content": "Auth Type" } ], "description": [ { "code": "en-US", - "content": "Specifies the endpoint address, including protocol, host, path, and query parameters, where the request is directed." + "content": "Specifies the authentication variant to use, such as Bearer, Basic, X-API-Key, or a custom scheme. Use undefined to send the request without authentication." + } + ], + "documentation": [] + }, + { + "runtimeName": "http_auth_value", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Auth Value" + } + ], + "description": [ + { + "code": "en-US", + "content": "Provides the credentials for the selected authentication type. For Basic auth, supply an object with username and password; for all other types, provide a token or key string." + } + ], + "documentation": [] + }, + { + "runtimeName": "http_auth_place", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Auth Placement" + } + ], + "description": [ + { + "code": "en-US", + "content": "Defines where the authentication credentials are attached to the request. Bearer and Basic auth always use Header; custom schemes can be placed in the Header or as a URL query parameter." + } + ], + "documentation": [] + }, + { + "runtimeName": "http_schema", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Content Type" + } + ], + "description": [ + { + "code": "en-US", + "content": "Specifies the MIME type of the request payload, such as application/json, application/xml, or text/plain. This determines the expected format of the payload parameter." } ], "documentation": [] @@ -64,7 +115,24 @@ "description": [ { "code": "en-US", - "content": "Contains the request payload, such as JSON, XML, form data, or binary content, depending on the Content-Type header." + "content": "Contains the request payload. For application/json the value must be an OBJECT, for all other content types a plain string is expected." + } + ], + "documentation": [] + }, + { + "runtimeName": "headers", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "HTTP Headers" + } + ], + "description": [ + { + "code": "en-US", + "content": "An optional collection of key-value pairs containing additional request metadata such as custom headers." } ], "documentation": [] @@ -98,11 +166,16 @@ ], "deprecationMessage": [], "displayIcon": "tabler:world-www", - "signature": "(http_method: HTTP_METHOD, headers: OBJECT<{}>, url: HTTP_URL, payload: T): HTTP_RESPONSE", + "signature": "(http_method: HTTP_METHOD, url: HTTP_URL, http_auth: A, http_auth_value: HTTP_AUTH_VALUE, http_auth_place: HTTP_AUTH_PLACE, http_schema: S, payload: HTTP_PAYLOAD, headers?: OBJECT<{}>): HTTP_RESPONSE", "linkedDataTypeIdentifiers": [ "HTTP_METHOD", - "OBJECT", "HTTP_URL", + "HTTP_AUTH_TYPE", + "HTTP_AUTH_VALUE", + "HTTP_AUTH_PLACE", + "HTTP_SCHEMA", + "HTTP_PAYLOAD", + "OBJECT", "HTTP_RESPONSE" ] } diff --git a/definitions/taurus/object/data_types/object.proto.json b/definitions/taurus/object/data_types/object.proto.json index 2c3045c..f1b8fac 100644 --- a/definitions/taurus/object/data_types/object.proto.json +++ b/definitions/taurus/object/data_types/object.proto.json @@ -18,7 +18,9 @@ "content": "Object" } ], - "genericKeys": ["T"], + "genericKeys": [ + "T" + ], "type": "{ [K in keyof T]: T[K] }", "rules": [] }