The configuration web view for the Tornado Engine
This repo contains the code for the Web UI for the Tornado Event Processing Engine. It builds on the Carbon Design System and Vue.js.
To get started with tornado, simply clone this repo and its submodules to your
local machine and then run the command docker-compose up
in the base
directory. This will launch four docker container:
- tornado-wui_ui contains an nginx instance that serves the actual web ui
- tornado-wui_backend-user contains a mock for the user backend containing:
- User preferences
- Translations
- tornado-wui_backend-tornado contains a tornado instance which provides the configuration and handles the events.
- tornado-wui_proxy contains a nginx proxy that forwards all the requests to the right container and adds the auth headers for tornado.
After the containers have been build and were started, the UI will be available at http://localhost:8080
To quickly get a feel for the behaviour, try running an example in the test window. For that, simply copy the following JSON object into the payload in the test window:
{
"type": "foreach_log",
"created_ms": 1716543817000,
"payload": {
"source": "test-event",
"values": [
"log one",
"log two",
"log three"
]
},
"metadata": {
"tenant_id": "beta"
}
}
Don't forget to enable the execution of actions. With this you can see how data will flow through the processing tree.
The Tornado backend does not handle authentication on its own as it is meant to integrate into a broader system. Instead tornado is expected to run behind a proxy, which will handle the Authentication and set the necessary Authorization header before forwarding the request to tornado.
To learn more about the Auth header, please refer to the API reference
Warning: In this repo, the authorization backend is mocked, by giving root privileges to all users.
In the same spirit as with the auth, the tornado frontend does not handle user
info and translations on its own. Instead it makes requests to the backend to
handle that instead. The necessary backend endpoints are implemented in the
backend_user
directory.
The file with all text to translate can be found in the path ui/src/assets/i18n/translations.json