# Introduction

A brief introduction what to expect from helmut.cloud

Welcome, traveller. You have found your way to helmut.cloud, a cloud-based platform for individuals, teams or enterprises of almost any branch. helmut.cloud connects applications, breaks data isolation and enables workflows beyond an app’s original scope.

helmut.cloud brings user-friendly UIs and a set of workflow-specific applications. With **Cosmo**, teams can collaborate, review and manage content in structured spaces. With **High5**, workflows can be automated across different applications using modern web technologies. For developers, helmut.cloud offers deeper integration capabilities — up to the level of writing your own code.

### The challenge: specialized software and data isolation

We all use specialized applications to fulfill our daily tasks — one for editing, one for media management, one for spreadsheets and another one for your vacation schedule. While each application is optimized for a specific purpose, it is often yet another tool subscribed to for a single task.

The initial strength of an application — its specialization — can become a challenge. The scope of the software may not fully fit your needs, and eventually you are forced to change your workflow or manually push data from app A to app B. Even specialists are more prone to errors when processes become repetitive. The cost is your team’s valuable time spent managing isolated data pools across multiple systems.

### **The solution: flexible interfaces, easy configuration and collaboration**

helmut.cloud addresses this challenge by combining collaboration and automation. It offers user-friendly interfaces to manage content and establish technical connections between applications that usually would not communicate with each other.

Inside Cosmo, teams collaborate, review and approve assets. With High5, workflows can be automated and extended across systems. helmut.cloud helps share data, build workflows and automate repetitive tasks. It is cloud-based and available whenever and wherever you need it.

Collaborate with your team, your company or external partners: You decide what workflows are shared and who has access to the data. If you do not want to share anything, you can use helmut.cloud independently.

With [Helmut4](https://helmut.de/), we collected extensive experience in systems integration and workflow management. Bringing Helmut into the cloud was the next logical step — extending its capabilities beyond on-prem systems.

### Who is helmut.cloud for?

helmut.cloud is a scalable SaaS ecosystem built for postproduction teams and media organizations that want to collaborate efficiently and automate their workflows.

It combines professional post-production asset management and review (Cosmo) with enterprise-grade workflow automation (High5), allowing teams to control their entire production chain without technical compromises.

helmut.cloud connects creative collaboration with technical workflow orchestration. It helps teams:

* Review and approve media content
* Connect different production systems
* Reduce manual work
* Automate recurring processes
* Keep projects structured and organized

Whether you manage content, supervise approvals, design workflows, or maintain technical infrastructure, helmut.cloud helps you streamline postproduction and keep everything connected.


# The key features of helmut.cloud

To better understand helmut.cloud, it is good to take a look at its key features.

## Organizations

The heart of helmut.cloud. Its strongest side is its way to work together with other helmut.cloud users - be it inside or outside of your own real-life company or team. Collaboration is defined by a users membership to an organization - an abstract organizational layer inside helmut.cloud.

An organization

* is mandatory to act in helmut.cloud
* defines a users permissions and role for using applications inside helmut.cloud
* makes it possible to collaborate with members in- or outside of your real-world company or team
* keeps all the workflows, secrets and programs that were created in it

One user can be in multiple organizations, or can have a single organization for themself. In fact, since you registered, you already own a "private one-person-organization" - your account.&#x20;

As everything belongs to organizations, it is easier to switch user roles, assign or revoke memberships to projects without losing data that in conventional systems would be tied to one person only. You can even hand over ownership of an organization to someone else and leave, just to start your next project right away.

Fit your organizations to the projects needs and infrastructure - not the other way around!

## Cosmo

Cosmo is the collaborative starting point of helmut.cloud.

It provides a structured media workspace for managing, reviewing, annotating, and approving assets within an organization.

Cosmo enables:

* Structured Spaces for project organization
* Media asset management
* Frame-accurate playback
* Time-coded comments and annotations
* State tracking and approval status
* Secure sharing with external stakeholders

Cosmo focuses on collaboration and decision-making — ensuring content is validated before automation continues.

## High5

High5 is the workflow automation engine of helmut.cloud. High5 helps you to make connections between applications and build the logic to process the data you shared - no matter what. Ideally, your app supports webhooks or REST-API already. But you can also read and parse files or write custom code to work with data that is accessible to you. Stream Designer Studio lets you write your own low-code programs (streams) and makes it possible to adapt to many, many cases.

High5 allows you to

* manage your event triggers and workflows by organizing them in spaces
* define variables and secrets that can be used inside a space
* orchestrate events and actions graphically within the Stream Designer Studio
* administrate the agents that execute your workflows for you
* monitor your workflows in a dashboard
* Schedule workflows to run at specific times or recurring intervals (cron-like scheduling)

**Create cronjobs:**\
With built-in scheduling capabilities, High5 allows you to automate recurring tasks such as data synchronizations, watchdog processes...

Define when a workflow should run and let High5 handle execution reliably and automatically.

## Stream Designer Studio

Stream Designer Studio is a graphical node-based workflow orchestrator with support for low-code. It is a part of High5.\
You can choose between a variety of nodes that represent single actions, conditions or event triggers. Drag them onto your canvas and connect them in the order you need them to be executed. Build conditions or introduce logic into your workflows, working with data from internal or external applications.&#x20;

As a developer, you can even go all in and write your own nodes or code. Don't find the interface you need? Write it!

## The helmut.cloud Agent

The hand of helmut.cloud. The Agent is an application installed on workstations or devices that eventually executes the workflows scheduled by helmut.cloud.

Therefore, every agent needs to be authorized to act for a certain organization with a valid account or token, and the context in which the agent is running needs to be configured beforehand.

In a later stage of helmut.cloud, the agent will be expandable by plugins that you can develop yourself. This way, a bespoke solution for your software sins from the young days of your company is finally in reach.


# Case study: A media postproduction

In this case study, let us have a look at a mid-sized media postproduction and how it could benefit from using helmut.cloud.

Lorem ipsum&#x20;


# Step 1: Sign up

Wether you want to use helmut.cloud for yourself, as member of a team or for your company: The first thing you will always need is your personal account.

## Process overview

* Sign up to helmut.cloud
* Choose a region for your data and operations
* Provide an e-mail-address and personal data
* Check and confirm your input
* Verify your e-mail-address

Visit <https://app.helmut.cloud/sign-up> in your browser and sign up to helmut.cloud.

Please choose a location for your data and operations depending on where you are located. Bear in mind that this does not only have influence on your connection to helmut.clouds servers, but also may be a legal decision about where your data is stored.

A valid e-mail-address is needed for your helmut.cloud account. Follow through with the sign-up process.

When you have confirmed your data and validated your e-mail-address, you can sign in for the first time.

Welcome to helmut.cloud!


# Step 2: Create or Use the Private Organization

One of the strong sides of helmut.cloud is collaboration. To make it as easy as possible for users, everything is organized around organizations.

When you register, you automatically have a private organization. You can immediately use this organization to explore the platform, create workflows, and build projects on your own. No additional setup is required.&#x20;

If you want to collaborate with others, you can either join an existing organization or create a new one.

Your active organization is displayed in the top right corner. You can switch between organizations there.

## Create organization

To start working with others, set up your first organization.

* Click on your avatar icon in the bottom left corner
* Choose "*My organizations*"
* Click on "*Create organization*"
* Enter a name that makes sense to you and click the "Create" button.

Gratulations! You are now the owner of a shared organization! From now on, you can create workflows and add members to your organization, depending on your plan and license.


# Step 3: Asset Management – Importing & Ingesting Media

### Make some space in Cosmo

Once your organization is ready, you can create a **Space** in **Cosmo** — the core area to manage your projects and assets.

<figure><img src="/files/SJP6IA02gF3oy2NUFOiE" alt=""><figcaption></figcaption></figure>

The central dashboard area is where your content lives. When you select a Space, this area fills with your **Assets**, including:

* **Folders:** Organize your project files for easy navigation.
* **Media Files:** Videos, audio, and images with visual thumbnails help you quickly find what you need.
* **Metadata:** Access technical details and review statuses directly from this view.

<figure><img src="/files/zwbsOntjGF3AbOaUqKDf" alt=""><figcaption></figcaption></figure>

### Asset Management – Importing & Ingesting Media

<figure><img src="/files/UEbeayJiXVUJPN0YWbDY" alt=""><figcaption></figcaption></figure>

To begin working in Cosmo, you need to populate your Space with media. While manual uploads are common, Helmut.cloud is designed as an open ecosystem, allowing advanced, automated ingest methods via the **High5 workflow engine**.


# Step 4: Automated Ingest (High5 Workflow Engine)

#### Make Some Space in High5

High5 uses its own Spaces to organize workflows, triggers, variables, and automation logic.\
These Spaces are independent from Cosmo Spaces and are dedicated to workflow management inside High5.

A High5 Space is the starting point for building and managing your automation processes. It keeps workflows, secrets, triggers, and configurations structured and separated by project.

To create a Space:

1. Go to **High5 → Spaces** and click **"Create Space"**.
2. Give it a name that makes sense to you (e.g., `Playground`) and click **"Create"**.
3. Your new Space will now be listed in High5 and can be entered.

#### Automated Ingest (High5 Workflow Engine)

For professional workflows, assets can be ingested into **Cosmo** automatically using **High5** and the **Stream Designer Studio (SDS)**.

**Example Workflow: Uploading an Asset to Cosmo**

1. Open **High5**, create an **event**, and then click **+ Add Stream** to create a new stream.
2. Enter the stream — **Stream Designer Studio (SDS)** will open.
3. Click **Manage Catalogs → Add External Catalog**, paste the catalog URL, and save.
4. From the **Cosmo catalog**, drag the **Cosmo Asset Upload** node onto the canvas.
5. Connect the **Trigger** node to the **Cosmo Upload** node.
6. Configure the **Cosmo Upload** node:
   * **Video File Path**
   * **Organization Name**
   * **Space Name**
7. Save the stream and click **Publish** (cloud-and-arrow icon) — the stream is now available for execution.

<figure><img src="/files/FhHwGV1Ey0gCKPVlDR4S" alt="Cosmo Asset Upload node settings in SDS"><figcaption><p>Cosmo Asset Upload node settings in SDS</p></figcaption></figure>

Before we can execute this stream and test it, we need to [install and configure the HCloud agent](/getting-started/step-5-install-the-helmut.cloud-agent) on your system. You can leave Stream Designer Studio as it is and come back later.


# Step 5: Install the helmut.cloud Agent

This is no cold war thriller - the helmut.cloud Agent is the piece of software that will execute your workflows for you.&#x20;

Click on your avatar icon in the upper right corner and select "Download Agent". Choose an installer that will work with your operating system.&#x20;

Now connect the Agent to helmut.cloud. The easiest way is to use your own account for testing. Make sure that you [enabled your account as a target](/organizations/view-my-organizations/being-a-target) for the organization used.

Right-click the H-icon and choose "*Configure Agent*". A website opens in your browser. By default, no connection is established. To add one, click on "*Add connection*" and log in with your account to have access to the workflows in your organization.

You are now ready to run your first workflow on your workstation.

[All the details about installing and configuring the agent can be found here.](/the-helmut.cloud-agent/install-the-helmut.cloud-agent-software)


# Step 6: Run your first workflow: Back to Stream Designer Studio

## Back to Stream Designer Studio

Now that your agent is installed and configured, it can be used to execute streams. Change back into the Stream Designer Studio and have a look to the upper right corner. Next to the little cloud symbol, is a tag that informs you if your agent is connected or not. Because we did that just a few moments ago, chances are that it still shows as disconnected.

<figure><img src="/files/PQnRwv0wMD2yJ7BKkrXj" alt=""><figcaption><p>The helmut.cloud agent connection button in SDS lets you connect an agent with matching context</p></figcaption></figure>

Click on the symbol and choose your agent from the list below. Click "*Connect*". The connection will be established.

To test your stream you can first save, then publish and finally test it with the buttons in the stream control tool bar on the middle upper edge of the canvas.

Once executed successfully, the configured **video asset will be uploaded to the selected Organization and Space in Cosmo**, exactly as defined in the **Cosmo Asset Upload** node settings.

If something goes wrong, you can check the **Debugger Log** for error messages and resolve the issue accordingly.

<figure><img src="/files/Sas8efd4Sw3xNiOplmE4" alt=""><figcaption><p>Execute button in Stream Designer Studio</p></figcaption></figure>

## Troubleshooting and logs

Your dashboard tells you wether your stream succeeded or failed.

If the upload was successful, you can switch to **Cosmo** and verify that the asset appears in the chosen Organization and Space.

<figure><img src="/files/eXcAhCg0j7wm6u727IM1" alt=""><figcaption></figcaption></figure>


# Install the helmut.cloud Agent software

Click on your avatar icon in the upper right corner and select "*Download Agent*". Choose an installer that will work with your operating system. Curious about the Docker client? [Read on here](/the-helmut.cloud-agent/install-the-helmut.cloud-agent-software/docker).

After installation, the agent will be running inside your taskbar, identifiable by the helmut.cloud Agent icon. The Agent is running headless, configurable with a little menu that opens on right-click.

<figure><img src="/files/4k2fgQnK8N7YN2kEEOYc" alt=""><figcaption><p>The download-section offers the most recent version for your current OS. <br>Builds for other OSes are accessible as well.</p></figcaption></figure>


# MacOS

* Download the most recent .pkg installer
* As long as the installer is unsigned, open it with a right-click and choose "*Open*" from context-menu
* MacOS will warn you that the installer cannot be verified - choose okay, as we have not signed the installer yet
* Follow along the installation routine and finish installation

The HCloud.app will be installed into the *Applications* folder on your Mac.

## Set privileges for HCloud.app in System Preferences

To allow HCloud.app access to folders inside your users home like Desktop, Downloads or Documents, you will need to set privileges.

Open *System Preferences* via the Apple icon in the upper left corner of your Mac. Navigate to "*Privacy and Security*". Here, you can set granular privileges in *Files and Folders* or add *HCloud.app* to *Full Disc Access*, if your workflow demands it. If you are running HCloud.app unattended, consider to set full disc access to avoid requests blocking your executions.

*You should always consider the apps and the OS users privileges in your environment and set them according to your workflows needs and to internal security guidelines.*


# Windows

* Download the most recent .msi installer
* Double-click or right-click "Open" the installer
* Follow along the installation routine and finish the installation
* You will need administrative privileges to install the application

The applications folder and HCloud.exe can be found in `%programfiles%`.

The helmut.cloud Agent can be installed as a service on your Windows workstation. The application will then run in its own users context. Please take this into consideration when planning user privileges and access.

*You should always consider the apps and the OS users privileges in your environment and set them according to your workflows needs and to internal security guidelines.*


# Docker

The helmut.cloud Agent for Docker is a different beast. It is an agent in its own Docker image, based on Linux.

The helmut.cloud Docker Agent makes sense when you want to run it on Linux and/or if you prefer to run it in a sandboxed environment.

Multiple Docker Agents can share a host (e.g. in a server-based infrastructure) to serve as independent Agents for different tasks in the same or different organizations. You can take advantage of the options Docker offers to either isolate the agents container, or share some resources for collaboration.

To download the helmut.cloud Docker Agent image, you can use our public repository: \`[ghcr.io/moovit-sp-gmbh/hcloud-agent:latest](https://ghcr.io/moovit-sp-gmbh/hcloud-agent:latest)'. You can find a list of available tags [here](https://github.com/orgs/moovit-sp-gmbh/packages/container/hcloud-agent/versions).


# Establish a connection with the helmut.cloud Agent

To connect to helmut.cloud, you need an account or [Personal Access Token (PAT)](/personal-account/account-settings/security) that is valid for your organization.

Make sure that [the account is enabled as a target](/organizations/view-my-organizations/being-a-target) for the organization(s) you are working in.

Depending on the OS you are using, proceed with [MacOS and Windows](/the-helmut.cloud-agent/establish-a-connection-with-the-helmut.cloud-agent/macos-and-windows) or [Docker (Linux)](/the-helmut.cloud-agent/establish-a-connection-with-the-helmut.cloud-agent/docker-linux).


# MacOS and Windows

Right-click the H-icon in your taskbar and choose "*Configure*". A website opens in your browser. By default, there are no connections. To add a connection, click on "*Connect*" and log in with your account or [PAT (Personal Access Token)](/personal-account/account-settings/security).

Multiple connections are possible.

Depending on the settings of your private or shared organization, your agent will inherit the rights to act (or not act) accordingly.

You are now ready to use the agent on your workstation.


# Docker (Linux)

In a Docker environment, you can use this example compose file to set up a helmut.cloud Agent in a container.

```
// Example compose file

version: '3.8'
 
services:
  hcloud-agent:
    image: dckr.hlmc.io/moovit-sp-gmbh/hcloud-agent:latest
    ports:
      - "6968:6968"
    volumes:
      - hcloud-agent:/root/.hcloud
    restart: unless-stopped
    
 
volumes:
  hcloud-agent:
    /myhostshare:/mycontainershare

```

The connection(s) for a Docker HCloud agent is (are) defined via the clients configuration page:

```
http://docker-client-ip:6968/agent/
```


# helmut.cloud Agent logs

Read on how to retrieve the agents logfiles for either Windows and MacOS or Docker.


# Windows and MacOS

To read the helmut.cloud Agents logfiles, do a right-click on the helmut.cloud Agent-icon and choose "*Logs*". You will be lead to the logs rightaway, called *"agent.log*".

With the log, you will be abled to view events that are executed on your machine, to supervise the connection to helmut.cloud and to see errors when they appear.

If you experience problems with helmut.cloud or some workflows and modules and you want to address support to solve them, please include the agent.log into your ticket, accompanied by a description of the problem and the time it appeared.


# Docker

The HCloud Docker agents log can be retrieved like any container log in Docker.

Type

```sh
sudo docker stats
```

to get a list of all your containers, then pick the name of the client container which you want to read the logfiles of.

Alternatively, search for a string to reduce the number of line output and get only lines with the hcloud-string in it.

```sh
sudo docker stats | grep -i hcloud
```

Copy the name of the agents container affected and type

```sh
sudo docker logs hcloudagentcontainername
```

to retrieve the logs, or write them into a file like this:

<pre class="language-sh"><code class="lang-sh"><strong>sudo docker logs hcloudagentcontainername > /path/to/mylogfile.log
</strong></code></pre>

Like with any container, you can use third party tools to automatically collect logs and process or visualize information from your agents that are running as containers. You can also use helmut.cloud to collect and distribute logfiles to a location of your liking.


# Update the helmut.cloud Agent

When an update for the helmut.cloud Agent is available, it will be shown in the right-click context menu of the application running in your taskbar.

You can choose to update and then choose to restart the agent. Please be aware that this will result in a tiny bit of downtime for your Agent.

**We encourage users to test a new agent version** with their current workflows **before rolling out updates in all of the environment**.


# Account settings

To view your personal account settings and data, navigate to your avatar in the upper right corner and click on the drop down menu > *Account settings*.

Your personal account is always connected to your private organization - the one always comes with the other. That means, you will also be lead to your account settings by choosing "My private org" in the drop down menu right next to your account avatar, and then clicking on the gear wheel symbol.

In your account settings, you can choose between viewing:

* Your profile
* Security settings
  * Password & 2FA
  * Personal Access Token (PAT)
* Notifications
* License
* Logs


# My profile

The "*My profile*" sections contains

* Your avatar or profile picture
* Your name and company
* Your e-mail address
* The timezone you want to work in
* The date / time format you want to use globally in helmut.cloud

The timezone and date / time format that you can select here will only have influence on how YOU VIEW timestamps with your personal account in helmut.cloud. As this is dynamic, it can be changed at any time to suit your needs. Timestamps will not be changed by setting different options here.


# Security

## Password

Because "password123" was probably not safe enough, use this section to set a new, strong password for your account.

We strongly encourage to use long passwords with 2 factor authentication to secure your account.

If you want to be sure that all, and I mean ALL sessions with your user / password combination will be invalidated, you can do so here by clicking the button "*Logout all sessions*".

## Personal access token (PAT)

If you would like to use helmut.cloud via API, you must set up a Personal Access Token. Your Personal Access Token must remain secret at all times.

By clicking the button "*Create new PAT*", you can determine a name to later safely identify the right token for a certain purpose, set an expiry-date and choose what applications and actions can be authorized with the token. helmut.cloud will automatically fill in missing rights, when a superior ranking value has been set.

You can set an expiration date for a PAT. When it is reached, the PAT will inactivate.

### View, edit or delete your PAT

If you want to view your PATs details, you can do so by clicking on the little arrow to the right of the PATs list entry.

To modify the privileges, click on the pencil-icon next to the PATs name. Click "*Update*" to apply the changed settings.

To delete the PAT, click on the trash bin-icon next to the PATs name.

### Regenerate the PAT

Regenerating a Personal Access Token will de-activate the current token and generate a new one, which will be revealed to the user.

You can use this option if you think your PAT has been exposed to a third party by mistake or accident.


# Notifications

Determine, if and when you want to be notified about certain events in your helmut.cloud account.

If you want to disable notifications about organization invitations, you can do so here.


# License (private organization)

This is the right spot to view your private organizations license. As your account is by default a *private* organization, the license here is a bit different to a *shared* organizations license.

Your private orgs license contains for example

* the number of organisations you can create
* the number of agents you can use at a time
* the number of executions you can do in a defined timespan
* the number of spaces you can have in an application&#x20;

and so on. The differentiation is made to keep users flexible enough to choose the right license model for the purpose. Read more at [Licenses for shared organizations](/organizations/organization-settings/licenses-for-shared-organizations).

In your private organization, you cannot invite others nor build a team.


# Logs (private org)

The logs section provides a basic layer of auditing and logging, so you can keep track of everything. The private orgs logs will only show actions that have been executed in your private organization.

Log entries are divided into the loglevels INFO, WARNING and ERROR.

You can see what type of action has been logged, and also you can see the event, the origin and the time and date of creation.

Click on an entry to see the details and read the log message.


# Delete my account

**Note: As of now, there is no delete your account-button. Please write us to get your account deleted.**

To delete your account, go to your *Account settings > My Profile* and choose *Delete my account*.

You need to confirm this action. After confirmation, your account will be deleted for good and without any option to restore your data.

**⚠️ You cannot delete your account if you are the sole owner of one or more organizations. Please appoint a new owner for all those organizations first, then delete your account.**


# What are organizations in helmut.cloud?

To work beyond the borders of your very own system, access, privileges and licenses are managed in organizations.

Despite the name, an organization is not necessarily depicting your real life company or team - it is simply the default structure to organize who is allowed to do what in certain environments. Workflows and workflow elements belong to organizations, not users. Therefor, it is no problem when a user leaves a team or changes their role - the data will remain in the organization.

That is why everyone has to be in an organization to do something in helmut.cloud. By default, you already have a private organization when you start with a fresh account. This "private org" is a safe space for your own ideas - it belongs to you only, and you cannot share anything from your private org with others directly.

If you want to start working with others, a (non-private or) shared organization is mandatory. The amount of users and actions that are possible with this organization depend on your [license](/organizations/organization-settings/licenses-for-shared-organizations).


# View my organizations

To view a list of all organizations you own or participate in, click on your avatar in the upper right corner and select "My organizations" from the dropdown menu.

You can see the organizations name, what role you have, who created it and when it was created. You can also see an organizations members, and if you are a target.

If you do not want to execute jobs for a certain organization, read on below "[Being a target](/organizations/view-my-organizations/being-a-target)".


# Being a target

As a member of an organization, you can participate in executing jobs for this organization on your workstation. For this, you need to have the helmut.cloud agent software installed and running, and you need to be authorized and authenticated (meaning: logged in).

In case you do not want to execute jobs for this organization (for example, because you are a team manager or administrator), you can stop making your account a target by turning off the toggle switch here. Your agent will not take any more jobs from this organization after deactivating this option.&#x20;


# Choosing an organization to work in

To switch from your private org to any shared org that you are a member of, have a look at the upper right corner.  The currently active organization is shown here, right next to your avatar. By default, this is your private organization.

To select a different organization to work in, just click on the drop down menu and choose the organization you want to change over to. You will then be led to the organizations splash page.

If you do not want to execute workflows for an organization with your agent, take a look at [Being a target](/organizations/view-my-organizations/being-a-target).


# Organization settings

Your active organization is displayed in the top right corner. You can switch between organizations there.

Make sure you have selected the organization you want to configure. Then click on the gear wheel icon located to the left of the organization menu.

Here, you can manage the following sections:

* Members
* Invitations
* Teams
* Agent Accounts
* Applications
* License
* Logs.

To learn how to add and manage members to your org, team them and assign roles, please look at the section [Members and teams](/members-and-teams/members-and-roles).


# Licenses for shared organizations

In helmut.cloud, licenses are divided into personal licenses (account licenses) and licenses for shared organizations.

Each shared organization requires its own license that is part of a plan. Depending on your plan and needs, certain quota apply to your number of organization members, agents, teams and domains, as well as single properties of spaces in High5 or Fuse.

Please have a look at [helmut.cloud plans](https://helmut.cloud/) or contact our team if you need to know more about licensing option for resellers or enterprises.


# License

Here you can view your current plan and limit for this organization. Each organization is licensed separately, so the license can be made to fit your workflow.

Right now, you can choose between a FREE plan, a PRO plan and an ENTERPRISE plan.


# Logs (organization)

The organizations logs will show you all events happening in your organization, divided into the loglevels INFO, WARNING and ERROR.

You can see what type of action has been logged, and also you can see the event, the origin and the time and date of creation.

Click on an entry to see the details and read the log message.


# Members and roles

Add and edit organization memberships

Here you can view a list of all members of this organization, and what role they have. If you are the owner or administrator of an organization, you can change the role of a member and promote them to manager or admin.

## The member

Members can

* view organization members,
* view team members,
* and view teams.

## The manager

No need to wear a suit here. Managers can help to manage team members. This is an easy way to give your team a way to self organize.

Managers can

* view organization members,
* view and manage team members,
* and view teams.

## The administrator role

Need some more support? Go hire an admin! Administrators can

* view, add or remove organization members,
* view, create and manage teams,
* view and manage team members,
* view and manage invitations,
* view the logs,
* update the org avatar,
* create & rename or delete High5 & Fuse spaces.

## The owner role

Well, someone needs to do that job, too. Owners can

* view, add and remove org members,
* promote and demote all users to owner or lower roles,
* view, create and manage teams,
* view and manage team members,
* view and manage invitations,
* view the logs,
* update the org avatar,
* create, rename or delete High5 & Fuse spaces,
* manage the license,
* and delete the org.

Admins and owners will retain administrative rights for spaces even when they are not assigned to it (any more).


# Invite members and assign roles

## Invite someone

Before you can start building a team, invite others to your shared organization. They do not need to have a helmut.cloud account yet, but they must register before they can start working.

Go to your organization settings and click on "Invitations" in the left-hand menu.

There, you can view existing invitations, check their status, or invite someone to your organization by clicking the "+Invite member" button in the upper right corner.

## Assign roles to members

You can assign a role to a user before sending the invitation by selecting the appropriate role in the invitation dialog.

Once the person accepts the invitation, they will be added to your organization and appear in the "Members" section in the left-hand menu.

With the drop-down in the column "Role", you can set a role for someone. A detailed explanation can be found in [Members and roles](/members-and-teams/members-and-roles).


# What is a team in helmut.cloud?

Think of a team as a group of collaborators with whom you regularly share workflows or spaces.

Instead of adding individual users to a space each time, you can group them into a team and assign the team to a space. This is especially helpful if you frequently share workflows with the same group of people.

A team itself does not define special roles like “team captain.”

* Each member keeps their **organization role** (e.g., Admin, Member, etc.).
* When you assign a team to a space, you assign a **space role** to the entire team.
* All members of the team inherit that space role for the assigned space.

This means that members of a team can have different organization roles, but within a specific space, they share the same space role assigned to the team.

See also [Members and roles](/members-and-teams/members-and-roles) for more details about the different roles in a team.


# Create team

## Create a team

In the left column menu, switch to "Teams". Create your first team by entering a name (something like "A-Team") and click on "*Create*".

## Add team members

Your team is now visible in the list and you can click on the team to view all members in the team or add members to a team.

To add members, use the "*+Add members*" button in the upper right corner. From a list of all members in your organization, you can now choose the ones you want to team. Click "*Save*" when you are done, and "*Close*" when you want to leave the dialogue.

Team members can have different roles that can be [assigned in the members section](/members-and-teams/invite-members-and-assign-roles).


# What is Cosmo

## What is Cosmo?

Cosmo is the professional review and asset management product within the helmut.cloud ecosystem.

As part of the Helmut Cloud platform, Cosmo represents the collaborative layer of the production chain — where media is structured, reviewed, approved, and prepared for further automation through High5.

Cosmo provides a centralized and secure workspace where teams can manage media assets, control review processes, and collaborate transparently across departments and external stakeholders.

It is designed specifically for professional postproduction environments where structured media management, traceable feedback, and clear approval states are essential.

***

### Core Purpose

Cosmo enables you to:

* Manage media assets in clearly organized Spaces
* Structure content using Folders and defined hierarchies
* Access and monitor technical metadata
* Review media with frame-accurate playback
* Add time-coded comments and annotations
* Track approval states and decision history
* Collaborate securely with internal and external stakeholders


# Spaces in Cosmo

A Space is the central working area in Cosmo. It is where your media assets live, your team collaborates, and your review processes take place. Every asset in Cosmo belongs to a Space.

***

### What is a Space?

A Space is a structured environment **inside an Organization** that allows you to:

* Store and organize media assets
* Structure content using folders
* Manage metadata
* Track review and approval status
* Collaborate with team members

You can think of a Space as a **dedicated project area**.

#### User Access in a Space

* Each Space has its **own permissions**, separate from the organization.
* Users must be explicitly added to a Space to access its assets and collaborate.
* Organization-level membership does **not automatically grant access** to all Spaces.
* This allows you to give users **limited access** to specific Spaces without affecting their organization role.


# Creating a Space

After creating or joining an Organization, you can create a new Space:

1. Navigate to your Organization dashboard
2. Click Create Space or Click the plus icon
3. Enter a meaningful name (e.g.,  `Playground`)
4. Confirm creation

The new Space will now appear in your dashboard and can be entered.

<div align="center"><figure><img src="/files/ENzVrZFvJFbySxBcHfZM" alt=""><figcaption><p>Cosmo dashboard – Create Space view</p></figcaption></figure></div>


# Folder Management and Space Organization

Spaces in Cosmo allow you to structure and manage your content efficiently. Folders help you keep projects organized and maintain a clear directory structure.

### 1. Creating Folders

To create a new folder and organize your Space:

1. Click the **+ New** button.
2. Select **New folder** from the menu.
3. A new folder will be created instantly.
4. Enter a name for the folder.
5. Press **Enter** (or click outside the field) to save.

***

### 2. Moving Assets or Folders

You can reorganize your workspace by moving assets or folders into other folders using one of the following methods:

#### 2.1 Drag & Drop

1. Select the asset or folder.
2. Drag it to the destination folder.
3. Release it to drop the item.

#### 2.2 Move Menu Option

1. Select the asset or folder.
2. Click the vertical three-dot (⋮) menu.
3. Choose **Move**.
4. Select the destination folder.
5. Click **Move** to confirm.

Both methods help maintain a clean and structured directory layout.

<div align="center"><figure><img src="/files/IagJBuDExK6bsEa9t9jY" alt="" width="278"><figcaption></figcaption></figure> <figure><img src="/files/EJpfmOgAkEY8mokOYSni" alt="" width="323"><figcaption></figcaption></figure></div>

***

### 3. Asset & Folder Operations

Cosmo provides several management options for assets and folders.

***

#### 3.1 Renaming an Asset or Folder

1. Select the asset or folder.
2. Click the vertical three-dot (⋮) menu.
3. Choose **Rename**.
4. Enter the new name.
5. Press **Enter** or click outside the field to save.

***

#### 3.2 Deleting an Asset or Folder (Trash)

1. Select the asset or folder.
2. Click the vertical three-dot (⋮) menu.
3. Choose **Delete**.

The item is moved to **Deleted Items (Trash)**.

***

#### Trash Behavior

* Deleted items are **not immediately removed** from the system.
* They remain in **Trash** and can be restored during the defined retention period.

***

#### 3.3 Restoring Deleted Items

You can restore assets or folders:

1. Navigate to **Deleted Items**.
2. Select the asset or folder.
3. Click the vertical three-dot (⋮) menu.
4. Choose **Restore**.
5. Click **Confirm**.

<div align="center"><figure><img src="/files/ofyHzoBZFIj1acznkcik" alt="" width="563"><figcaption><p>Restore asset from Trash</p></figcaption></figure></div>

***

#### 3.4 Downloading an Asset

You can download an asset using one of the available proxy options:

1. Select the asset.
2. Click the vertical three-dot (⋮) menu.
3. Choose **Download**.
4. Select one of the available proxy options.
5. The download starts automatically.

<div align="center"><figure><img src="/files/7NBs8temY0MkQW3ihiQU" alt="" width="563"><figcaption><p>Download asset option</p></figcaption></figure></div>


# Space Roles & Permissions

Access to a Cosmo space is controlled through predefined roles.\
Each role defines what a user is allowed to view, create, modify, or manage within the space.

Permissions apply at the space level and control actions related to assets, members, shares, and space configuration.

### Available Roles

Cosmo provides the following space roles:

* **Viewer**
* **Member**
* **Admin**
* **Owner**
* **External User** (via share permissions)

Each role includes a different set of permissions.

## Permission Categories

Permissions in a Cosmo space can be grouped into the following categories:

#### 1. Viewing Permissions

* View space
* View assets
* View asset details
* View metadata
* View comments
* View tags
* View activity

#### 2. Asset Management Permissions

* Create (upload) assets
* Download assets
* Update assets
* Move assets
* Copy assets
* Rename assets
* Delete assets
* Write metadata
* Write status

#### 3. Collaboration Permissions

* Create asset comments
* Delete asset comments
* Share assets
* View shares
* Delete shares

#### 4. Member & Role Management

* View members
* Update members
* Assign user roles
* View roles

#### 5. Space Management

* Update space name
* Update space avatar
* Delete space
* Manage namespaces
* Create/edit/delete roles


# The Cosmo Player and Asset Detail View

When opening an asset in Cosmo, you enter the Asset Detail View. This view provides media playback, technical metadata, and proxy control.

### 1. Media Playback

The Cosmo Player enables smooth and precise playback directly in the browser.

To preview an asset:

1. Click on the asset.
2. Press the **Play** button to start playback.

<div align="center"><figure><img src="/files/fihhm4p1S0m7Vwn4FZke" alt="" width="375"><figcaption><p>Press the <strong>Play</strong> button to start playback</p></figcaption></figure></div>

***

#### Keyboard Shortcuts

**Playback & Volume**

* **Space / K** — Play / Pause
* **M** — Mute / Unmute
* **R** — Toggle loop playback
* **F** — Toggle fullscreen

***

**Navigation (Time & Frames)**

* **J / L** — Seek backward / forward **10 seconds**
* **Arrow Left / Right** — Seek backward / forward **1 frame**
* **Shift + Arrow Left / Right** — Seek backward / forward **10 frames**
* **Home / End** — Jump to the beginning or end of the video

***

**Markers (In / Out Points)**

* **I / O** — Set **IN** or **OUT** point at the current time
* **Shift + I / O** — Jump to the **IN** or **OUT** point
* **Esc** — Clear both **IN** and **OUT** points

These shortcuts allow for frame-accurate navigation and efficient review workflows.

***

### 2. Technical Metadata

Detailed technical information about an asset can be accessed via the **Metadata panel**.

To open it:

1. Click the **Metadata** icon while viewing the asset.
2. A side panel will open displaying file details such as:

* **Bitrate**
* **Codec**
* **Resolution**
* Additional format-specific metadata

This information helps technical users verify file specifications and delivery requirements.

<div align="center"><figure><img src="/files/kpOVXE2I8ZJvQZTq9ALD" alt="" width="408"><figcaption><p>Technical Metadata</p></figcaption></figure></div>

***

### 3. Proxy Selection

The Cosmo Player allows you to manually switch between available proxy qualities.

To change the proxy:

1. Click the **Proxy Selection** button.
2. Choose the desired quality.
3. Playback will switch to the selected proxy automatically.

***

#### Why Use Proxy Selection?

* Lower proxy qualities reduce bandwidth usage.
* Playback is smoother on slower or unstable internet connections.
* Buffering and playback interruptions are minimized.
* Users can optimize performance based on current network conditions.


# Review and Approval

Cosmo provides powerful review and approval tools that enable precise feedback, visual annotations, and structured status tracking.

### 1. Time-Coded Comments

You can add feedback at specific points in an asset’s timeline using time-coded comments.

To add a comment:

1. Open the asset in the **Cosmo Player**.
2. Click the **Comment** icon to open the commenting panel.
3. Move the playhead to the desired **timecode**.
4. Write your comment in the text field.
5. Click **Send** to save it.

The comment will be linked to the exact frame where it was created.

Time-coded comments allow collaborators to provide precise, frame-accurate feedback.

***

#### Setting IN and OUT Points

Instead of referencing a single frame, you can define a specific time range using **IN** and **OUT** points.

* Press **`I`** to set the **IN** point at the current playhead position.
* Press **`O`** to set the **OUT** point at the current playhead position.
* The selected range is visually highlighted in the timeline.
* The comment will reference the defined time range.

This is especially useful when feedback applies to a sequence rather than a single frame.

<div align="center"><figure><img src="/files/mxwXWDLhFPS2LNz0hGo2" alt="" width="563"><figcaption><p>Mark IN and OUT points on the Cosmo Player timeline for precise feedback</p></figcaption></figure></div>

***

### 2. Visual Annotations

You can draw directly onto the video frame to visually highlight required changes.

To create an annotation:

1. Click the **Annotations** icon to open the annotation tools.
2. Select a **color** and **shape**.
3. Draw directly on the video frame to mark the relevant area.
4. Write a comment.
5. Click **Send** to save.

Annotations are tied to a specific frame and help communicate visual corrections clearly.

***

### 3. State Tracking (Tags)

State tags allow you to track production progress within a Space.

To set a state tag:

1. Click the **Set Tag** button.
2. Choose the appropriate state (e.g., **In Progress**, **Approved**, **Rejected**).
3. The selected tag is applied to the asset.

State tags help teams organize assets according to workflow stage and production status.

<div align="center"><figure><img src="/files/dMXPcpfG1my5IjzjnErT" alt=""><figcaption><p>Set Tag</p></figcaption></figure></div>

***

#### Clearing a State Tag

To remove the current tag:

1. Click the **Set Tag** button.
2. Select **Clear Tag**.
3. The tag is removed from the asset.

***

### 4. Review Status

In addition to tags, you can define the formal review outcome using **Status**.

To update the status:

1. Click the **Set Status** button.
2. Choose one of the following:
   * **Approved**
   * **Not Approved**
   * **Clear Status**
3. The selected status is applied to the asset.

Status indicates whether the asset has successfully passed review or requires further revisions.

***

#### Tags vs. Status — What’s the Difference?

* **Tags** → Track production workflow stages (e.g., In Progress, Editing, Review).
* **Status** → Represents the formal approval outcome (Approved / Not Approved).

Using both together provides a clear and structured review pipeline.


# Sharing and External Access

### 1. Sharing Asset

Assets can be shared with internal users (existing users in the system) or external users (users without a full account). Sharing allows controlled collaboration while maintaining security and permission control.

**To share an asset:**

1. Select the asset you want to share.
2. Click the vertical three-dot menu (⋮).
3. Select **Share**.
4. Enter the email address of the recipient.
5. Select the appropriate **permission level or group permission** (if available).
6. Click **Share**.

The recipient will receive a secure link that provides access based on the assigned permissions.

### 2. Internal vs External Users

**Internal Users**

Internal users are members of the system and are assigned a role within a space, such as:

* Viewer
* Member
* Admin
* Owner

Their access is controlled by their assigned role and space permissions.

Examples of internal user permissions include:

* View assets
* Download assets
* Upload or create assets
* Edit asset metadata
* Share assets (Member, Admin, Owner only)
* Delete or move assets (depending on role)
* Manage members and roles (Admin and Owner only)

**External Users**

External users do not have full system accounts. They access assets through a secure share link.

External users can be granted specific permissions such as:

* View assets
* View asset details
* Download assets (if enabled)
* Add comments (if enabled)
* Upload or edit assets (if contribution is enabled)

External user permissions are controlled through **group permissions or individual share settings**, not full system roles.

External users cannot:

* Access the full space
* Manage members
* Assign roles
* Delete spaces
* Perform administrative functions

### 3. Group Permissions (Share Permission Groups)

When sharing assets or spaces, predefined permission groups can be assigned to control what the recipient can do.

**Asset Share Permission Groups**

Common group permission levels include:

**View Only**

* View assets
* View asset details

**View + Download**

* View assets
* View asset details
* Download assets

**Contributor**

* View assets
* Download assets
* Upload assets
* Edit assets
* Rename assets
* Copy assets
* Move assets
* View activity

**Full Access / Editor**

* All contributor permissions
* Delete assets (if enabled)

These permission groups are combinations of system permissions such as:

* VIEW\_ASSETS
* VIEW\_ASSET\_DETAILS
* DOWNLOAD\_ASSETS
* CREATE\_ASSETS
* UPDATE\_ASSETS
* MOVE\_ASSETS
* COPY\_ASSETS
* DELETE\_ASSETS
* VIEW\_ASSET\_ACTIVITY&#x20;

### 4. Space Permissions vs Asset Permissions

Permissions exist at two levels:

**Space-Level Permissions**

These permissions apply to the entire space and are controlled by roles.

Examples include:

* View space and assets
* Create assets
* Share assets
* Manage members (Admin and Owner only)
* Assign roles (Owner only)
* Delete space (Owner only)

**Asset-Level Permissions**

These permissions apply only to specific shared assets.

Examples include:

* View asset
* Download asset
* Edit asset
* Comment on asset
* Delete asset (if allowed)

***

### 5. Security Controls

When sharing an asset, you can configure detailed access permissions to control what external users are allowed to do.

To configure security settings:

1. Click the vertical three-dot (⋮) menu on the asset.
2. Select **Share**.
3. Enter the recipient’s email address.
4. Review and configure the available permissions:
   * **Comments** — Allow or restrict commenting
   * **Approval** — Allow or restrict approval actions
   * **Download** — Allow or restrict asset downloads
   * **Contribution** — Allow or restrict uploads or additional input
5. (Optional) Enable **Set Password for Protection** and define a password.
6. (Optional) Enable **Set Expiration Date** and choose the desired expiration date.
7. Click **Share** to generate the secure link.

These controls ensure that external access is limited, secure, and time-bound when required.

<div align="center"><figure><img src="/files/jbvYSBcOq5fy2pPPh5Ss" alt="" width="404"><figcaption><p>Configure security settings and permissions when sharing an asset</p></figcaption></figure></div>

***

### 6. Feedback Integration

* Comments appear directly on the asset.
* Time-coded comments and annotations are preserved.
* Team members can view and respond.

This ensures that all review feedback remains centralized and traceable in one place.


# Advanced Search & Discovery

Cosmo provides powerful search capabilities to help you quickly locate assets across your organization.

### 1. Global Search

You can search for assets across the entire Organization using the central search bar.

To perform a global search:

1. Click the **Search** bar at the top of the interface.
2. Enter keywords such as:
   * Asset name
   * File name
   * Related terms
   * Metadata values
3. Review the displayed results.

Search results include matching assets from all accessible Spaces within the Organization.

Global Search enables fast discovery of media content, regardless of where it is stored.

***

#### Search Behavior

* Results are filtered based on your access permissions.
* Only assets from Spaces you have access to will appear.
* Matching terms may include file names and indexed metadata fields.

<figure><img src="/files/UVuT9XFF94y7gI6shHDm" alt=""><figcaption><p>Global Search</p></figcaption></figure>


# User Access

Cosmo provides flexible user and permission management.

### 1. Managing Permissions & Roles

Access control is managed through **User Access** settings.

To modify permissions:

1. Navigate to **User Access**.
2. Click **Add Permissions**.
3. Select the member.
4. Click **Move** to assign them.
5. Choose a role (**Owner**, **Admin**, **Member**, or **Viewer**).
6. Click **Save** to apply changes.

Roles define what actions a user can perform within a Space.

<figure><img src="/files/hAeWhFFycTsnR0g5W3sf" alt=""><figcaption><p>Manage user permissions and assign roles</p></figcaption></figure>

***

### 2.. Role Descriptions

#### Owner

* Full control over the Space
* Manage users and assign roles
* Create, edit, and delete custom roles
* Manage namespace tags
* Update Space settings (name, avatar)
* Delete the Space
* Create, edit, delete, and share assets
* Manage Trash and shares

***

#### Admin

* Manage users and assign roles
* Manage shares and Trash
* Override asset status
* Manage namespace tags
* Update Space avatar
* Create, edit, delete, and share assets

***

#### Member

* Create, edit, move, copy, rename, delete, and download assets
* Update asset status and tags
* Add comments and annotations
* Share assets
* View Space members and assets

***

#### Viewer

* View Space members
* View assets and asset details
* View metadata, status, tags, and comments
* Cannot create, edit, delete, or manage assets


# Space Settings and Configuration

Space Settings allow administrators to configure and customize behavior within a specific Space.

### Managing Tags

Tags help structure and categorize assets within a Space. They can be used for workflow tracking, filtering, and organization.

To create and manage tags:

1. Navigate to **Space Settings**.
2. Open the **Tags** section.
3. Click the **+ Tag** button.
4. Enter the desired tag name.
5. Press **Enter** to create the tag.

The new tag is now available for assignment to assets within the Space.

<figure><img src="/files/vXngSyfYqG4pPVhMwBPU" alt=""><figcaption><p>Create and manage tags</p></figcaption></figure>

***

#### Editing or Removing Tags

Depending on your role permissions, you can:

* Rename existing tags
* Delete tags that are no longer needed
* Manage tag visibility within the Space

Tag management helps maintain a structured and consistent workflow environment.


# Workflow Triggers

Workflow Triggers let you automatically execute **High5 streams** whenever specific actions happen in your Cosmo space. This allows you to automate processes and integrate Cosmo events with your workflows seamlessly.

### Configuring Workflow Triggers

1. Navigate to **Workflow Triggers** in your Cosmo space.
2. Click **Choose** to link a **High5 space** where Cosmo should send event triggers.
3. Select the **High5 Execution Target** from the dropdown:
   * **Organization Member**
   * **Agent Account**
   * **Agent Pool**
4. Choose the **Cosmo Events** that should trigger workflows. Examples include:
   * **Space Actions:** rename, delete, member changes
   * **Asset Actions:** create, update, delete
5. Click **Create** next to the event you want to enable.

Once set up, the configured High5 streams will execute automatically whenever the selected events occur in your Cosmo space.

<figure><img src="/files/yX8BkbImN0Esp2WjPPBI" alt=""><figcaption><p>Configuring Workflow Triggers in Cosmo</p></figcaption></figure>


# What is High5?

High5 is the brain of helmut.cloud, or the gearbox in your workflow. High5 helps you to make connections between applications and build the logic to process the data you shared - no matter what. Ideally, your app supports webhooks or REST-API already. But you can also read and parse files or write custom code to work with data that is accessible to you. Stream Designer Studio lets you write your own low-code programs (streams) and makes it possible to adapt to many, many cases.

High5 also gives you the power to control who in your organization can do what in your workflows.

High5 allows you to

* manage your events and streams by organizing them in spaces,
* define variables and secrets that can be used safely inside a space,
* orchestrate events and actions graphically within the Stream Designer Studio,
* administrate the agents that execute your workflows for you,
* and monitor your workflows in a dashboard.


# Spaces in High5

Spaces contain and organize your workflows programs (called streams) and its variables and configuration. One space can contain multiple events that are part of a workflow.

All spaces belong to an organization. Right now, one organization can have up to 100 spaces, depending on your license.

[After creating a new space from scratch](/high5/spaces-in-high5/list-create-rename-and-delete-spaces), you can browse its properties and start to work with them. Click on a space in the space list to enter it.

A space contains:&#x20;

* Events&#x20;
* Streams connected to events
* A dashboard to monitor your spaces stream executions
* A section to manage HCloud agents which execute your streams
* Webhooks as an interface for incoming HTTP requests
* A Secrets Store to safely store passwords, variables and other secrets
* User Acces Control
* Space Settings


# List, create, rename and delete  spaces

## View a list of all spaces

To see a list of all the spaces you are involved in, go to *High5 > Spaces.*&#x20;

You will see the name of the space, its creator and the date of its creation.

## Create a space

* In High5, go to the left side menu column and select "Spaces"
* Click "Create space" to start the wizard and choose to create a new space
* Assign a name and click okay

Your new space is ready now.

## Rename a space

To rename a space, go to the menu on the left side. Select *High5 > Spaces* and hover with your cursor over the space you want to rename. Click on the pencil-icon next to the name of the space.

## Delete a space

To delete a space, go to the menu on the left side. Select *High5 > Spaces* and hover with your cursor over the space you want to delete. Click on the X-icon next to the name of the space. You need to confirm that you want to delete the space, as it will be deleted inevitably.


# Dashboard

### Space Dashboard – Stream Executions

The **Space Dashboard** displays a list of stream executions associated with the currently selected High5 space. It allows users to monitor execution status, view messages, and filter execution records.

The dashboard shows the following information for each execution:

* **Stream Name** – The name of the executed stream
* **Status** – The current execution status (e.g., Failed, Completed, Running)
* **Message** – Execution result or error message
* **Space** – The High5 space where the execution occurred
* **Date Time** – The timestamp of the execution

This dashboard provides visibility into stream activity and helps users identify errors and monitor system behavior.

<figure><img src="/files/DYl0RDeGpGdKBfob8a7W" alt=""><figcaption></figcaption></figure>


# Agents

View the Agents connected to this High5 Space. You can view the clients name and e-mail, status, IP address, operating system and memory as well as cpu usage.

<figure><img src="/files/F6mUot868mYw2rZFZ5TC" alt=""><figcaption><p>The Agent section in High5 shows the Agents connected </p></figcaption></figure>


# Events

Events and streams can be found here.

An event is a starting point for one or multiple streams. All streams that are to be found underneath one event will execute in the order of their listing (starting at the top), once the event has been triggered (e.g. by an [event webhook](/high5/spaces-in-high5/webhooks)).

The switches next to the streams enable or disable the single stream for this event. In a modularly built stream execution, you could switch off certain parts of your workflows by simply disabling the stream which provides the function(s) you want to stop executing. This also helps in debugging complex workflows.

<figure><img src="/files/Gr5koTKqiADcvMKG5Y1W" alt=""><figcaption></figcaption></figure>

* To add a stream to an event, use the "*+ Add Stream*" button in the lower left corner of the list
* To edit a stream, use the pencil icon and enter StreamDesignerStudio
* To duplicate a stream, use the paper-sheets icon
* To delete the stream, use the trash-bin icon


# Agent Pools

### Viewing Agent Pools

To view agent pools:

1. Navigate to your High5 space.
2. Click **Agent Pools** in the left sidebar.

The Agent Pools page displays a list of all pools in the current space.

The list includes:

* **Pool Name** – The name of the agent pool
* **Targets** – The agents or execution targets assigned to the pool (if configured)

You can use the **Search** and **Filter** options to locate specific pools.

<figure><img src="/files/NMtC9KNHZypKzyBHBod3" alt=""><figcaption></figcaption></figure>

### Creating a New Agent Pool

To create a new agent pool:

1. Click **+ Add pool** in the top-right corner.
2. Enter a name for the pool.
3. Click on "Create" button.


# Webhooks

The webhooks section allows you to create, configure, edit, secure and delete webhooks as triggers for events.

Webhooks are a non-standardized and very convenient way to trigger events in helmut.cloud. Technically, a webhook in helmut.cloud can be invoked with a standard HTTP POST request to its URL. To ensure the call to the webhook is authorized, configure the HMAC signing and validation with a pre-shared key. Additionally or alternatively, multiple HTTP-headers can be set, e.g. to define the payload. A payload limited to 4 MB can be attached to the call.

## Event webhooks

With an event webhook, a single event out of many in a space can be triggered.

* Click "*+ Create webhook*"
* Choose "*Event webhook*"
* Click "Go"
* Choose a name
* Connect an event from the drop-down list
* Define a target account to execute the events stream

Below advanced options, you will find

* Headers to e.g. define content-type, requests or responses
* HMAC authorization headers
* An encryption algorithm to use with HMAC
* And the preshared key to use with HMAC

## Space webhooks

A space webhook offers the option to call an event inside a space defined by the payload of the call.

* Click "*+ Create webhook*"
* Choose "*Space webhook*"
* Click "Go"
* Choose a name
* Define the path to the exact event-name string in the calls payload (e.g. "status.event.name" for a JSON payload)
* Define a target account to execute the events stream

Below advanced options, you will find

* Headers to e.g. define content-type, requests or responses
* HMAC authorization headers
* An encryption algorithm to use with HMAC
* And the preshared key to use with HMAC

## Advanced Options

When creating or editing a webhook in High5, you can expand the **Advanced options** section to configure additional security, validation, and response behavior.

These options allow you to control how incoming webhook requests are validated and processed.

### Webhook Callback

The **Webhook Callback** option allows you to send a custom HTTP response.

When enabled:

* You can define a specific HTTP status code.
* You can define a custom response body.
* The default immediate response behavior is replaced.

This is useful when integrating with third-party services that expect a specific response format.

***

### HTTP Headers Validation

You can require specific HTTP headers to be present in incoming webhook requests.

For each header, you must define:

* **Key** – The header name
* **Value** – The expected header value

The webhook request will not be processed if:

* The required header is missing
* The header value does not match

This adds an additional validation layer for incoming requests.

***

### HMAC Validation

HMAC validation ensures that incoming requests are authentic and have not been tampered with.

#### HMAC Header Name

Specify the name of the HTTP header that contains the HMAC signature.

Example:

```
X-Signature
```

***

#### HMAC Algorithm

Select the algorithm used to generate the HMAC signature.

Example:

* sha256

The selected algorithm must match the configuration of the external system sending the webhook.

***

#### HMAC Pre-shared Key

Enter the secret key used to generate the HMAC signature.

You can:

* Enter your own secret
* Generate one using the **Generate** option

The webhook request will only be processed if the signature matches the generated HMAC using this key.

***

### IP Restrictions

You can restrict which IP addresses are allowed or denied from triggering the webhook.

IP addresses must be entered in **CIDR notation**.

Example:

```
192.168.0.0/16
```

***

#### IP Blacklist

Requests from IP addresses listed here will be rejected.

***

#### IP Whitelist

Only requests from IP addresses listed here will be accepted.

If both are configured, whitelist rules typically take priority depending on system configuration.

***

## Security Recommendation

For production environments, it is recommended to:

* Enable HMAC validation
* Use a strong pre-shared key
* Configure an IP whitelist
* Validate required HTTP headers

This ensures that only authorized systems can trigger the webhook.

## Webhook payload types and sizes

The calls payload can be very versatile, as helmut.cloud accepts many payload types. Yet we encourage our users to use JSON payloads that include the name of the source event.

All payloads are capped at `4 MB`. As a consequence, helmut.cloud will discard all payloads larger than this.

## Securing your webhook with HMAC signatures and validation

To secure communication between third-party applications and helmut.cloud against man-in-the-middle and replay attacks, it is recommended that the third-party posting to the webhook signs all payloads with an HMAC pre-shared key. helmut.cloud can provide a unique key during webhook creation or it can be included by the third-party in the response body.

During webhook creation, see the advanced options to configure HMAC authorization. You can set a header name, decide between SHA1 and SHA256 encryption and generate a PSK for your third-party application. This pre-shared key must remain secret at all times to ensure its function.

When HMAC validation is enabled, unsigned calls or calls with a wrong signature with be discarded.

## Securing your webhook with custom headers

In case the posting third-party app does not support HMAC, it is possible to use custom headers to generate some layer of authentication. However, this is not as secure as signing with HMAC. Custom headers with a static secret may not help you evading MIM or replay attacks per default.

## Webhook URL validation

In case a third-party application requires initial validation of the target webhook URL, it should first send a `GET` request with a query string called `challenge`. helmut.cloud will then respond with an HTTP `200` status code, echoing the value of the `challenge` query string in the response body.

The following HTTP headers will also be included:

Content-Type: `text/plain`

&#x20;X-Content-Type-Options: `nosniff`

## Webhook response codes

Once a webhook is triggered by the third-party application, [helmut.cloud](http://helmut.cloud) will respond to the `POST` request with the following HTTP status codes:

* `204` with an empty body in case of success.
* `400` in case of a bad request.


# Cronjobs

High5 includes **built-in scheduling capabilities** that allow you to automate recurring tasks, such as:

* Data synchronizations
* Watchdog processes
* Backups
* Maintenance routines

You can define exactly **when a workflow should run**, and High5 will execute it reliably and automatically.

#### How to Create a Cronjob

1. Go to **High5 → Cronjobs** and click **Create Job**.

2. Enter the required details:
   * **Name** – a descriptive title for your job
   * **Description** – optional notes about the job’s purpose
   * **Email** – notification address for job status
   * **Event** – choose the workflow or stream this cronjob will execute.
   * **Target** – **Select the execution target** from the dropdown:
     * **Organization Member**
     * **Agent Account**
     * **Agent Pool**
   * **Request Body (JSON) (optional)** – provide custom data to pass to the workflow if needed.

3. Set the **job schedule**:

   * Choose the frequency
   * Optional: adjust advanced settings like **time zone**

   <figure><img src="/files/nZcvPrnhkMhRWz50wn72" alt=""><figcaption></figcaption></figure>

4. Click **Create** to finalize your cronjob.

Once created, your cronjob will run automatically according to the defined schedule, ensuring recurring tasks are handled without manual intervention.


# Secrets Store

The Secrets Store enables users to store value. A user can choose if a value needs to be concealed or not.

A secret remains unrevealed during stream execution. To read and use a secret in a stream, the node "*Get Secret*" should be used.

## Create a secret

Go to the Space where your secret will be needed. Navigate to the "*Secrets Store"* in the menu on the left side. A list of all secrets available in this Space appears.

* Click on the button "*+ Create secret*" in the upper right quarter of the UI
* Assign a unique name to your secret
* Fill in a value
* Click on the padlock-icon to close it and conceal the value, if needed
* Click on "*Create*" to finish the process and create the secret

The secret is now visible in the list, and when chosen, the value is concealed by asterisks.

<figure><img src="/files/G23h10iECf0wHCK8xzq0" alt=""><figcaption><p>Use the padlock icon to conceal the value in lists and logs</p></figcaption></figure>


# User Access

[User access](/cosmo/spaces-in-cosmo/user-access) in High5 is managed using the same roles and permission model as Cosmo. The structure, roles, and access control behavior are identical.


# Space settings

To manage the settings of a space, navigate to **High5** and select the space you want to configure.

1. Go to **High5**.
2. Select the desired **space** from the Spaces list.
3. In the left sidebar, click **Space settings**.

The Space Settings page allows you to configure the properties of the selected space.

***

### Available Settings

You can manage the following settings:

#### Space Avatar

Update the avatar image that represents the space. This helps visually identify the space.

#### Space Name

Modify the name of the space. This name will be displayed throughout the High5 interface.

#### Wave Engine

Configure the Wave Engine version used for this space.

The Wave Engine is the executing stream engine of helmut.cloud. It is under constant development. To avoid breaking your workflows and streams by forcing an auto update on your engine, you can set the wave engine version yourself when you are ready to accept and test new features or bug fixes. See the changelog for more details.

You can:

* Select the Wave Engine version
* Enable or disable **Show development versions** to allow or restrict the use of development versions

#### Delete Space

Delete the space permanently.

<figure><img src="/files/EcU9sVov1sN436jmtEht" alt=""><figcaption></figcaption></figure>


# Stream Designer Studio

Stream Designer Studio is a graphical programming environment for low-code programs called streams. You can choose between a variety of nodes that represent single actions, conditions or event triggers. Drag them onto your canvas and connect them in the order you need them to be executed. Build conditions or introduce logic into your workflows.

All streams inside one space can share data and access passwords or tokens that are stored encrypted in the Secrets Store.

Developers can go all in and write their own code or create new nodes for their helmut.cloud workflows. Write interfaces for your own applications and make them accessible for a wide range of users.


# UI overview

The Stream Designer Studio is the visual workspace where you create, edit, and manage streams. It provides a graphical interface to design workflows by connecting nodes, configuring logic, and controlling execution behavior.

The interface consists of the following main areas:

<figure><img src="/files/UCwHKQSxQcgfLiQSV6nd" alt=""><figcaption></figcaption></figure>

### 1. Canvas (Workspace)

The canvas is the central area where streams are visually designed.

On the canvas, you can:

* Add nodes to define workflow steps
* Connect nodes to control execution flow
* Arrange and organize nodes
* View the overall structure of the stream

Each node represents a specific action or function. Connections between nodes define how data and execution move through the stream.

### 2. Node Connectors

Each node contains connectors that define execution paths:

* **Input connector** – receives execution from a previous node
* **Success connector** – defines the path when execution succeeds
* **Fail connector** – defines the path when execution fails
* **Global fail connector** – handles global failure scenarios

You can create connections by dragging from one connector to another.

### 3. Left Sidebar – Node and Tools Panel

The left sidebar contains tools and node management options:

**Nodes:** Displays available nodes that can be added to the stream.

**Wildcards:** Provides reusable dynamic variables or wildcard values.

**Custom Nodes:** Displays user-created or custom nodes available for use.

**Undo:** Reverts the last action performed on the canvas.

**Snapshot:** Allows you to create or restore a snapshot of the stream state.

**Search:** Helps locate specific nodes or components.

**Shortcuts:** Displays available keyboard shortcuts.

**Settings:** Provides configuration options for the Stream Designer Studio.

### 4. Top Toolbar – Stream Controls

The top toolbar provides controls for managing and executing the stream.

Available actions include:

* Save the stream
* Deploy or publish the stream
* Refresh the stream state
* Export or capture stream data
* Execute (run) the stream manually

These controls allow you to manage the lifecycle of the stream.

### 5. Agent Status Indicator

The top-right corner displays the agent connection status.

Example:\
**No Agent connected**

This indicates that no execution agent is currently connected. An agent must be connected for the stream to run.


# Node inputs and outputs

Sharing payloads or results between nodes

Nodes in the Stream Designer Studio (SDS) can receive input data and produce output data. This data can be passed between nodes or accessed from the stream context using **wildcards**.

Wildcards are dynamic expressions that are resolved at runtime using values available in the stream execution context.

### Using Wildcards in Node Inputs

To pass data delivered to a stream (for example from a webhook or cronjob), use a wildcard expression inside a node’s input field:

```
{{ payload.data }}
```

### Wildcard Resolution Behavior

Wildcards are resolved at runtime according to the following rules:

* If the input field contains only the wildcard, the original data type is preserved.\
  Example:

  ```
  {{ payload.data }}
  ```

  Result: The original object, number, or boolean is preserved.
* If the wildcard is part of a larger string, the value is automatically converted to a string.\
  Example:

  ```
  File path: {{ payload.path }}
  ```

  Result: The wildcard value is inserted as text.

### Accessing Outputs from Other Nodes

Each node produces outputs that can be used by other nodes in the stream.

To access the output of another node, use the following wildcard format:

```
{{ output.nodeId.OutputName }}
```

Where:

* `nodeId` is the unique ID of the node
* `OutputName` is the name of the output field

Example:

```
{{ output.64d3482f-3151-4615-ah29-1a8d2d1cf84b.StdOut }}
```

This expression retrieves the `StdOut` output from the specified node.

### Using the Wildcard Catalog

The Stream Designer Studio provides a **Wildcard Catalog**, accessible from the left sidebar under **Wildcards**.

The Wildcard Catalog contains a list of available wildcards, organized by category.

Each wildcard includes:

* Wildcard expression
* Description of what the wildcard represents
* The data it provides

This allows you to easily discover and use valid wildcards without manually typing them.

Common wildcard categories include:

* Payload wildcards (data from triggers)
* Node output wildcards (data from other nodes)
* System wildcards (system-level values)
* Execution context wildcards

To use a wildcard:

1. Open the **Wildcards panel** in the left sidebar.
2. Browse or search for the desired wildcard.
3. Copy the wildcard expression.
4. Paste it into the node input field.


# Node Catalogs

Node Catalogs organize nodes into logical groups based on their source, functionality, or integration. They help users quickly find and use the appropriate nodes when building streams in the Stream Designer Studio (SDS).

You can access Node Catalogs from the left sidebar by clicking **Nodes**.

### Catalog Structure

The Node Catalog is organized into:

* **Catalog Provider** – The source of the nodes (for example, helmut.cloud or Cosmo Catalog)
* **Categories** – Functional groupings within a catalog
* **Nodes** – Individual components that perform specific actions

This structure helps organize nodes in a clear and scalable way.

### Using Nodes from a Catalog

To use a node from a catalog:

1. Open the **Nodes** panel in the left sidebar.
2. Expand the desired catalog (for example, helmut.cloud or Cosmo Catalog).
3. Expand a category.
4. Drag the node onto the canvas.

Once added, the node can be configured and connected to other nodes.


# Developing nodes with NodeKit

## Getting Started Guide

This guide will take you step-by-step through the process of building and publishing your first node catalog, from start to finish.

### **What is NodeKit?**

NodeKit provides all the essential tooling, UI components, helper classes, and documentation needed to develop, test, and distribute node catalogs in [helmut.cloud](http://helmut.cloud).&#x20;

You can create nodes using TypeScript, leveraging the ever-growing universe of Node.js packages to develop sophisticated and feature-rich node catalogs.&#x20;

NodeKit simplifies the process of building, testing, and publishing your node catalog, making it readily available for use within the High5 Stream Designer Studio

#### Prerequisites:

* A GitHub account
* A [helmut.cloud](http://helmut.cloud/) account
* The [helmut.cloud](http://helmut.cloud/) agent version 1.2.0 or newer installed and running

#### Recommendations:

* Visual Studio Code

### 1. Create a new repo from the wave-node-catalog-blueprint template:

First things first, let’s create a new repo in your GitHub account using the official Wave Node Catalog Blueprint. This blueprint is packed with goodies: sample code, GitHub Actions for building and publishing, linting rules, and much more. 🎩✨

1. Head over to [wave-nodes-catalog-blueprint](https://github.com/moovit-sp-gmbh/wave-nodes-catalog-blueprint) on GitHub, click "**Use this template**," then "**Create a new repository**."

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/9c31f875-bffe-4b60-ae28-01c362c8b321/Screen%20Shot%202024-09-06%20at%2009.20.56.png" alt=""><figcaption></figcaption></figure>

2. On the "**Create new repository**" page, ensure "**Repository template**" is set to **"moovit-sp-gmbg/wave-nodes-catalog-blueprint"**, and set the owner to your account.

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/3b188b11-ff2a-4b22-adc0-62cb932e2eb5/Screen%20Shot%202024-09-06%20at%2009.21.25.png" alt=""><figcaption></figcaption></figure>

3. Give your repository a name, set the visibility (public or private), and hit "**Create repository**"

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/3808d6f0-9d9b-4a7b-86fe-ec32da3d045b/Screen%20Shot%202024-09-06%20at%2009.21.49.png" alt=""><figcaption></figcaption></figure>

4. Once your repo is ready, click the "Code" dropdown and copy the HTTPS link. You'll need it for the next step

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/a712a550-0f5f-4715-af3f-d1ee58e06594/Screen%20Shot%202024-09-06%20at%2009.22.41.png" alt=""><figcaption></figcaption></figure>

### 2. Code and Test:

1. Now it's time to dive into the fun part, coding! 🧑‍💻 Grab the HTTPS link from your new repo, open the terminal in VSCode, and paste the link to clone the repo to your local machine.

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/3145929a-634c-44a9-a32d-cac71cdc8983/Screenshot%202024-09-06%20at%2009.23.36.png" alt=""><figcaption></figcaption></figure>

2. Once cloned, open the folder in Visual Studio Code and run: `npm i` . This will install all project dependencies from `package.json`

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/e2697ae6-4fa1-4a8b-984e-88e344efd779/Screenshot%202024-09-06%20at%2009.25.39.png" alt=""><figcaption></figcaption></figure>

3. Once that’s done, navigate to the "**lib**" folder, expand the "**nodes**" folder, and create your first `node.ts` file. For a solid starting point, check out `HttpClient.ts` . This node serves as a blueprint for building new nodes. In this file, you can explore how to use helper classes, read inputs, set outputs, and understand how the node specification works, along with much more.

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/1b3b6330-9800-4442-856d-19803ed07ecb/Screenshot%202024-09-06%20at%2009.32.11.png" alt=""><figcaption></figcaption></figure>

4. Once you’ve finished coding your nodes, open the `index.ts` file and import all the nodes you’ve created at the top of the file. Here’s an example:

```typescript
import Demo from "./lib/nodes/Demo";
```

5. Now it’s time to configure the catalog instance. You’ll need to provide the following details:

* **Name:** The catalog’s name, e.g., "**Microsoft Teams**"- **Description:** A brief description, e.g., "**Nodes to send messages in Microsoft Teams**"
* **Logo:** A `.webp` logo file (max size X by Y) hosted at a publicly accessible URL.&#x20;
* **Wave Engine Version:** Specify the minimum version of the Wave Engine required to run your catalog.&#x20;

Finally, add the nodes that should be bundled in your node catalog.&#x20;

Here's an example:

```typescript
export default new Catalog(
  "Demo Catalog",
  "This is my first external node catalog",
  "https://app.helmut.cloud/img/logo_white.webp",
  "1.0.0",
  Demo,
  Demo2
);
```

### 3. Test your node:

Testing your nodes couldn’t be easier, and the best part? You don’t even need to publish them first. Pretty awesome, right? 😎\
\
Once you’re happy with your code, just follow these steps:<br>

1. Open a terminal in VSCode and run: `npm i`
2. Next, link your node to the helmut.cloud agent by running:: `npm run link` . This command automatically links the helmut.cloud agent to the local file path where your node code lives on your local machine.
3. Finally, generate the specification for your node by running:: `npm run spec -- <name-of-your-node>` . This will output the full spec for your node directly in the terminal.

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/9f411943-f549-4823-822b-d1064ff2e915/Screenshot%202024-09-06%20at%2023.12.47.png" alt=""><figcaption></figcaption></figure>

3. Copy the JSON output, hop over to the Stream Designer Studio. Press`Ctrl + K` (Windows) or `Cmd + K` (Mac) to bring up the command palette. Type ‘**Import node specification**’ into the search bar, select the option, and press `Return` to open it.

<figure><img src="/files/liuqBtBkBaxAOaqmoDgr" alt=""><figcaption></figcaption></figure>

4. Paste the JSON into the input field of the **'Import dev node specification**' window and press `Return`. The node will be added to your canvas, ready for testing.

<figure><img src="/files/K0MEqKTejcc6D9uk62C4" alt=""><figcaption></figcaption></figure>

### 4 Debugging your node's code:

Found a bug or just want to step through your code? We've got you covered!

1. Start by opening a JavaScript Debug Terminal in VSCode.
2. If the helmut.cloud agent is running, stop it first, then run `npm run debug` to launch it in debug mode.
3. Then, run `npm run link` to link your [helmut.cloud](http://helmut.cloud) agent to your local node file path.
4. Set one or more breakpoints in your code where you want execution to pause.
5. Execute the stream, and the debugger will stop at your breakpoints, allowing you to inspect and step through your node code.

### 5. Configure the s3 storage:

The repo comes pre-configured with a GitHub Action that automates building and publishing your node catalog to S3 storage. You'll just need to configure a few properties:

* **S3 Bucket Endpoint**: The endpoint of your S3 bucket.
* **Bucket Name**: The name of your S3 bucket.
* **Public Endpoint**: The public URL where your S3 bucket is accessible.
* **Region**: The region where your S3 bucket is hosted.
* **Access Key ID**: Your S3 access key ID.
* **Access Key Secret**: The secret associated with your access key.
* **Destination Directory**: The folder on your S3 bucket where the node catalog will be stored.

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/edabb7e5-6327-456c-90c0-a06bbcd4028f/Screenshot%202024-09-06%20at%2014.12.25.png" alt=""><figcaption></figcaption></figure>

### 6. Deploy

Now that your node is ready, it’s time to push it!&#x20;

1. Open your terminal in VS Code and stage your changes with: `git add .`
2. Commit your changes with: `git commit -a -m "commit message"`
3. Tag your release: `git tag vx.x.x`
4. Finally, push your local commits: `git push origin vx.x.x`&#x20;

Once pushed head to GitHub, open the "**Actions**" tab, and expand the "***Upload catalog to S3***" workflow

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/eee7914d-cd85-4d0d-80db-6755ef581434/Screen%20Shot%202024-09-06%20at%2014.22.39.png" alt=""><figcaption></figcaption></figure>

Expand the "**Print catalog registry URL**" section and copy the URL

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/604928e0-346e-4c8d-8ea2-b1d8dd927c84/Screen%20Shot%202024-09-06%20at%2014.23.09.png" alt=""><figcaption></figcaption></figure>

### 7. Import the node catalog in Stream Designer Studio:

Now that your catalog is built and you’ve got the public URL, it’s time to import it into Stream Designer Studio.

1. Go to the node panel, click "**Manage node catalogs**"

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/a34d38c2-a003-4033-981e-216abecc0f4e/Screen%20Shot%202024-09-06%20at%2023.19.50.png" alt=""><figcaption></figcaption></figure>

2. On the "**Manage node catalog**" screen, click "**Add external catalog**"

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/bb021253-d8b9-400a-aef1-728f89b2783b/Screen%20Shot%202024-09-06%20at%2023.19.56.png" alt=""><figcaption></figcaption></figure>

3. Paste the URL, and hit "**`Save`**"

<figure><img src="https://t2570196.p.clickup-attachments.com/t2570196/35b470ee-f806-484a-a26e-881ca00d7506/Screen%20Shot%202024-09-06%20at%2023.20.00.png" alt=""><figcaption></figcaption></figure>

Congratulations! 🎉 You've now successfully developed, tested, built, and published your node catalog!


# Changelog

## 04-08-2026 <a href="#id-02-03-2026" id="id-02-03-2026"></a>

#### **Cosmo**

**New features and enhancements**

* Added asset versioning, allowing assets to be grouped into version stacks and compared side by side on the asset detail page
* Added a Share button to the asset detail page for creating public and private shares directly from the asset
* Added the ability to mark asset comments as completed
* Added the ability to mention individual members of an assigned team in comments
* Improved tag creation by automatically replacing invalid characters while typing

**Bug Fixes**

* Fixed an issue where searching could unexpectedly open the responsive search view

#### Cosmo Panel Extension

**New features and enhancements**

* Added support for comment colors, visibility, and completed state

#### helmut.cloud agent

**Bug Fixes**

* Fixed an issue where the agent bundle could prevent the agent from starting the execution stream on older agent installers

#### **High5**

**Bug Fixes**

* Fixed an issue where wildcards in non-string input fields were wiped, causing their values to become undefined

## 16-07-2026 <a href="#id-02-03-2026" id="id-02-03-2026"></a>

#### helmut.cloud agent

**New features and enhancements**

* Added a check that verifies the Wave Engine's integrity before execution.
* Added automatic reconnection to NATS if the connection drops.
* Improved stream execution performance by caching stream designs.
* Added a new API for managing the stream cache.
* Added a new API to forward agent logs to external log collectors such as Amazon CloudWatch.

## 29-06-2026 <a href="#id-02-03-2026" id="id-02-03-2026"></a>

#### **Cosmo**

**New features and enhancements**

* Cosmo interface is now fully responsive across screen sizes
* Added the ability to set comment visibility for external users
* Added support for marker colors in asset comments
* Added the ability to enable and disable shares
* Added support for uploading assets into a share when contribution is enabled
* Added notifications to shared users when someone replies to their comments
* Extended the list of workflow triggers with new events for asset metadata, asset subscriptions, and shares

#### **High5**

**Bug Fixes**

* Fixed an issue where saving or publishing a stream in SDS briefly displayed an error message before confirming success

#### **helmut.cloud core**

**New features and enhancements**

* Added download links for the helmut.cloud agent installer and the Cosmo panel extension for Premiere Pro to the download area

**Bug Fixes**

* Fixed an issue where the email sent when leaving an organization contained a broken verification button and incorrect text
* Fixed an issue where resending an organization invitation resulted in a broken email
* Fixed an issue where selecting Delete from the table header actions dropdown did not trigger deletion
* Fixed an issue where the customer registration confirmation email was not sent

## 09-06-2026 <a href="#id-02-03-2026" id="id-02-03-2026"></a>

#### **Cosmo**

**New features and enhancements**

* Added support for BITV 2.0
* Added an Auto-Delete option to Space settings, enabling automatic deletion of trashed assets after a configurable number of days
* Added metadata support for comments, replies, and annotations, enabling custom key/value pairs for third-party integrations
* Added 2x, 3x, and 4x playback speed options to the player
* Updated tags to accept the hyphen (-) character in tag names
* Added a confirmation dialog when renaming a Space, warning that existing share links will become invalid
* Cleared In and Out points automatically after submitting a ranged comment

**Bug Fixes**

* Fixed URL signing for trash and share search results
* Fixed an issue where share update events were sent with an incorrect ObjectType
* Fixed an issue where the Edit Share modal displayed the title "Create Share" instead of "Edit Share"
* Fixed an issue where files uploaded via the Panel appeared at the root level of the Space instead of the intended folder

#### Cosmo Panel Extension

&#x20;**New features and enhancements**

* Updated the comment click behavior to move the player playhead to the corresponding timestamp and pause playback
* Added email autocomplete to the private share flow
* Cleared In and Out points automatically after submitting a ranged comment

#### **High5**

**Bug Fixes**

* Fixed an issue where patching a pool did not include targets in the response when they were not specified in the request input

#### **SDS**&#x20;

**New features and enhancements**

* Added wildcard binding support for number input fields

**Bug Fixes**

* Fixed an issue where connector dot pulse animations ran continuously in the background, causing excessive GPU load and battery drain

#### **helmut.cloud core**

**Bug Fixes**

* Fixed an issue where the user who creates a new organization was assigned the Member role instead of Owner
* Fixed an issue where an email address previously used to access a share could not be used to register a full hcloud account

#### **High5 Node Catalogs**

**New features and enhancements**

* Added a dedicated Cosmo node catalog, enabling management of Cosmo Spaces directly from High5 streams

## 04-05-2026 <a href="#id-02-03-2026" id="id-02-03-2026"></a>

#### **Cosmo**

**New features and enhancements**

* Added support for creating public links
* Added the ability to download asset comments for Final Cut Pro, DaVinci Resolve, and Avid
* Added manual sorting for space tags
* Added tooltips to player controls
* Redesigned the Share view
* Added loading skeletons across all pages
* Improved transcoding metadata by preserving source timecode alongside absolute timecode

&#x20;**Bug Fixes**

* Fixed an issue where sharing an asset could send duplicate emails
* Fixed an issue where emptying the trash failed if the video had already been removed from S3
* Fixed an issue where clicking “Empty trash” with no items returned an incorrect “Given space not found” error
* Fixed an issue where external users saw “insufficient.rights” errors due to missing base share permissions
* Fixed an issue where share creation accepted asset IDs that were not part of the organization or space
* Fixed an issue where S3 links could expire and return 401 errors
* Fixed an issue where sharing failed for users with team-based permissions
* Fixed an issue where revoking access did not reliably remove space visibility
* Fixed an issue where external users could gain broader space access after leaving the player
* Fixed an issue where restoring items from the trash did not work for some assets
* Fixed an issue where inviting an external user to multiple shares could fail
* Fixed an issue where team members did not receive email notifications when added to a space
* Fixed an issue where public share links could show a “Link has left the building” error
* Fixed an issue where the player could shrink horizontally for vertical videos
* Fixed an issue where the in/out component in comments could break on small screens
* Fixed an issue where thumbnails were not signed correctly

#### Cosmo Panel Extension

&#x20;**New features and enhancements**

* Introduced the Cosmo panel extension for Premiere Pro (beta)

#### **High5**

&#x20;**New features and enhancements**

* Added the ability to jump directly to a node in substreams
* Added cron-based execution support

**Bug Fixes**

* Fixed an issue where SDS Debugger elements could overlap each other

### SDS

**New features and enhancements**

* Added wildcard binding for multiple SDS input field types

**Bug Fixes**

* Fixed an issue where Replay did not work for nodes connected to iteration connectors

## 30-03-2026 <a href="#id-02-03-2026" id="id-02-03-2026"></a>

#### **Cosmo**

**New features and enhancements**

* Added support for mentioning teams in comments and replies.
* Updated the list view to show asset status instead of the confusing transcoding status.
* Added support to add and remove users from shares.
* Improved empty trash by running the operation asynchronously.
* Improved upload progress visibility for large multi-file uploads.
* Updated copy behavior by separating copy without history and clone with history using dedicated endpoints.
* Updated asset tile preview behavior by replacing the WebP animation with the tile image.
* Added an inline action to add external users to a share using the Enter key flow.
* Improved single-asset downloads so they start directly in the browser without opening a new page.
* Improved the UI by disabling the Empty Trash button when the trash bin is empty.

&#x20;**Bug Fixes**

* Fixed an issue where updating a comment could drop mentioned teams from the response.
* Fixed an issue where Cosmo event creation could mix up comment and tag related event types.
* Fixed an issue where copying with history could show "item not found" even though the copy succeeded.
* Fixed an issue where asset status and tags were not visible in the trash view.
* Fixed an issue where permanently deleting a copy could cause remaining related assets to lose metadata and thumbnails.
* Fixed an issue where recursive search returned an internal server error.
* Fixed an issue where org-wide search without a space returned an error.
* Fixed an issue where share edits were silently ignored in multiple permission scenarios.
* Fixed an issue where adding an invalid email prevented shares from being created for valid users.
* Fixed an issue where 9x16 videos were rendered with incorrect aspect ratio.
* Fixed an issue where organization members or managers could not create shares with Review permissions.
* Fixed an issue where share creation alerts showed both success and failure states.
* Fixed an issue where emptying the trash failed for certain legacy or partially deleted assets.
* Fixed an issue where mentions could not be removed when patching comments.
* Fixed an issue where recursive organization search returned trash assets when context was set to ORGANIZATION.
* Fixed an issue where pressing Enter in search caused an exception.&#x20;

#### **High5**

&#x20;**New features and enhancements**

* Added an index to execution statuses to improve querying by organizationId.
* Added support for substreams in High5 streams.
* Added an option to bind wildcards to input fields in SDS.

**Bug Fixes**

* Fixed an issue where encrypted secret creation failed due to validation changes.
* Fixed an issue where High5 rejected pool targets for execution.&#x20;

## 02-03-2026 <a href="#id-02-03-2026" id="id-02-03-2026"></a>

#### Cosmo <a href="#cosmo" id="cosmo"></a>

**New features and enhancements**

* Added support for copying asset and copying asset with history.
* Added logic to the frontend to react to change of password, expiration date or access rights in the share
* Added option to edit a shares permissions.
* Added full support for mentioning teams in a comment.

**Bug fixes**

* Fixed an issue where asset status and tags were not visible in trash view and copies lost all info after trash was emptied
* Fixed an issue where the copy button in the asset copy modal was squashed by the breadcrumb navigation
* Fixed an issue where going back while a video asset was playing threw an error
* Fixed an issue where clearing a tag threw a 500 error
* Fixed an issue where different shares with different passwords did not work correctly
* Fixed an issue where reclicking the email link for a share did not work due to incorrect domain
* Fixed an issue where users to mention list showed under other elements
* Fixed an issue where the mentionable users list was not shown completely
* Fixed an issue where share permissions were not propagated to external users
* Fixed an issue where creating a share with multiple assets created multiple listings in shares view
* Fixed an issue where the list view did not show upload progress
* Fixed an issue where Cosmo permissions at team level did not apply to sub-users
* Fixed an issue where the library deleted on S3 was not handled properly
* Fixed an issue where the copy asset was missing the nats update
* Fixed an issue where the mentionedTeams array was not populated when mentioning teams in a comment
* Fixed an issue where users were not redirected to the appropriate page on error when sharing

#### High5 <a href="#high5" id="high5"></a>

**Bug fixes**

* Fixed an issue where High5 could not resolve execution status if it is a pool due to type mismatch
* Fixed an issue where High5 was not listening for service account deletes, causing pool loading failures

## 18-12-2025

### Cosmo

**Bug fixes**

* Fixed an issue where emails sent to external users arrived without displaying the content
* Fixed an issue where sharing a folder could fail in certain scenarios
* Fixed an issue where moving a folder did not refresh the UI correctly
* Fixed an issue where external users had incorrect permissions on assets
* Fixed an issue where tag behavior in Spaces could lead to errors
* Fixed an issue where a link in the email could lead to an error page
* Fixed an issue where adding unregistered users to a share was not accepted
* Fixed an issue where viewers could receive permissions for all namespaces when added to a share
* Fixed an issue where uploading assets into a folder only triggered the “asset added” event
* Fixed an issue where deleting shares did not work as expected
* Fixed an issue where comment drawings could shift position when resizing the player window
* Fixed an issue where annotations could be inherited into subsequent comments
* Fixed an issue where recursively searching a share could show duplicate assets
* Fixed an issue where Cosmo events were triggered with an incorrect payload
* Removed the option to set status, tags, and comments on trashbin assets

### High5

**Bug fixes**

* Fixed an issue where catalog descriptions were being cached
* Fixed an issue where PATCH requests did not behave as expected

### SDS

**New features and enhancements**

* Added an option to jump to a node from the performance tab

### Agent

**New features and enhancements**

* Added support for registering custom modules in the agent tray icon

**Bug fixes**

* Fixed an issue where the agent could generate multiple lock files<br>

## 24-11-2025

### Wave Engine

**New features and enhancements**

* Updated hcloud-sdk to version 18.0.0
* Updated Node.js runtime to version 24.11.1

## 20-11-2025

### Cosmo

**New features and enhancements**

* Improved realtime refresh reliability
* Made search case-insensitive
* Added the option for share members to upload assets into the shared folder

**Bug fixes**

* Fixed an issue where the move-folder dialog showed the source folder as a destination
* Fixed an issue where external users could not be mentioned on the asset details page
* Fixed an issue where asset activity was not visible for non-org admins and owners
* Fixed an issue where realtime updates were not available for private organizations
* Fixed multiple issues with bulk asset move
* Fixed an issue where admins could not see the content of a share

### IdP

**Bug fixes**

* Fixed an issue where the registration process for unregistered users could fail

### SDS

**New features and enhancements**

* Reworked the debugger and stream palette to show the agent account’s name instead of its ID
* Improved multi-selection behavior for nodes

## 19-11-2025

### Agent Bundle

**Bug fixes**

* Fixed an issue where the agent frontend was not loading the CSS correctly

## 03-11-2025

### Cosmo

**New features and enhancements**

* Initial release of the production collaboration platform&#x20;

### Fuse

* Deprecated Fuse as a standalone module. Its functionality will be migrated into High5

### High5

**New features and enhancements**

* Improved the logic used to download the latest Wave Engine version

**Bug fixes**

* Fixed an issue where stream execution logs were not being deleted according to the defined rules

### SDS

**Bug fixes**

* Fixed an issue where Cmd+C and Ctrl+C did not copy the selected text
* Fixed an issue where renaming a node on the canvas could prevent further editing
* Fixed sorting order in the code editor

### IdP

**Bug fixes**

• Fixed an issue where deleting a user from an organization did not remove the user from the database

## 04-06-2025

### Frontend

**New features and enhancements**

* Added support for agent accounts.

### Stream Designer Studio

**New features and enhancements**

* Added support for delta saving.
* Introduced real-time stream debugging capabilities.
* Added stream replay functionality.
* Extended the command palette with the ability to:
  * Import from `curl`
  * Import from Python and JavaScript
  * Import node specifications
* Added the ability to upgrade or downgrade nodes.
* Added the option to copy text from the UI using the copy shortcut key.
* SDS now automatically scales based on the host resolution.
* Extended the number of supported syntax-highlighted languages in the extended input field.
* Introduced a new performance view in the stream debugger.

**Bug fixes**

* Fixed a formatting issue in the node panel’s release notes section.
* Fixed a formatting issue in the node panel’s release notes section.
* Fixed an issue with catalog imports from external sources (CORS).
* Fixed multiple issues in the custom nodes implementation

### High5

**New features and enhancements**

* Added the option to cancel a running stream.

  > *Note: Cancel behavior depends on whether the running node supports cancellation logic.*
* Added support for agent pools.
* Updated the webhook target input to a dropdown, making it easier to select predefined targets
* Webhook logs now retain the full request body (up to 2 MB).
* Added the option to configure a space to show development versions of the Wave Engine and node catalog.

### Wave engine

**New features and enhancements**

* Added support for stream breakpoints.
* Extended the list of available wildcards.
* Improved handling of JSON keys containing the `"` character.
* Improved the log callback mechanism in environments with high jitter or latency.

### Agent

**New features and enhancements**

* The Agent now loads user environment variables by default.
* Reworked how the Agent reports local system information to the hcloud Mothership.
* Blocked the ability to spawn multiple Agent instances on the same machine.
* Updated the UI to support logging in with an agent account.
* Optimized the Agent bundle size.

**Bug fixes**

* Fixed a reconnection issue after the computer has been idle for some time.
* Fixed an issue where Monday DB encryption would break when switching from debug to normal mode on ARM-based Macs.

## 13-02-2025

### Frontend

**New features and enhancements**

* Added a notification toast when user settings are updated.
* Added a password-reveal icon for the `currentPassword` field on the account page.
* Password fields are now cleared automatically after a successful password change.
* Improved email validation to support addresses like `j.doe+alias123@example-mail.com` for active organizations.
* Implemented a workflow to invite unregistered users to join an organization.
* Introduced a new table view component.
* Added support for OAuth Apps.

**Bug fixes**

* Fixed an issue where `spaceName` was not being resolved when navigating from `space > webhooks` to `home`.

**Changes**

* Removed filtering for the creator field.

### Stream Designer Studio

**New features and enhancements**

* Enhanced the **Quick Add Node** component.
* Replaced the string input field in the SDS menu with a text area.
* Introduced a **wildcard panel**.
* Added a new `STRING_PASSWORD` input field.
* Added functionality to persist stream tabs even after a browser tab is reloaded.
* Improved navigation experience on the canvas.
* Improved the look of stream tabs.

**Bug Fixes**

* Fixed a bug where toggling the select button on one node catalog card incorrectly affected all toggle buttons.
* Fixed layout issues with logs, information, payload, and performance sections in the SDS debugger.
* Fixed an issue where `STRING_SELECT` inputs displayed the label instead of the value..
* Fixed an issue where the rename snapshot icon was missing when hovering over a snapshot card.

### High5

**Bug fixes**

* Fixed an issue where extra white spaces in payload values were being removed incorrectly.
* Fixed an issue where High5 failed to check the minimum engine version before executing a stream.
* Fixed an issue where webhook logs displayed incorrect source IP addresses.

### Wave engine

**New features and enhancements**

* Added **color and node type** to `nodeResult`.
* Implemented the initial support for **stream debugging**.
* Improved **logging reliability**, including a mechanism to **report crashes when regular logging fails**.
* Enhanced logging with:
  * A `logs` property in `nodeResult`.
  * A new `addNodeLog()` helper method.
  * Support for the `logs` wildcard.

### Agent

**New features and enhancements**

* Improved how the agent **handles connection failures**.
* Implemented the initial support for **stream debugging**.
* Added a **reconnection mechanism** in `ContextManager`.
* Added an **uninstaller** to clean up the `.hcloud` directory.
* Introduced **new endpoints to get and set bundle versions**.

**Bug Fixes**

* Fixed issues with **bundle version headers**.
* Fixed an issue where the **initial context setup** was unnecessarily delayed.

## 10-11-2024

### **Wave engine**

**Bug Fixes**

* Resolved an issue where wildcards could not be resolved.
* Corrected access rights for publishing logs.
* Fixed issues executing certain file and folder nodes on Windows.
* Improved logic for managing additional node connectors.

**New features and enhancements**

* Added type support in node execution logs.
* Introduced helper methods for folder creation management.
* Expanded wildcard support:
  * `{{node.<nodeId>.input.Inputname}}`
  * `{{node.<nodeId>.output.outputname}}`
  * `{{node.<nodeId>.errors}}`
  * `{{node.<nodeId>.info.*}}`
  * `{{stream.info.*}}`
  * `{{agent.info.*}}`

### **Miscellaneous**

**New features and enhancements**

* Added changelogs for Wave Engine, Wave Nodes, Agent Bundle, and Agent.

**Bug fixes**

* Admins can no longer invite owners.

### **Frontend**

**Bug fixes**

* Improved table filter functionality.
* Org dropdown now auto-refreshes after creating a new org.

**New features and enhancements**

* Added full support for real-time updates.
* Introduced a password complexity checker to all password-entry views.
* Reworked QR Code generation process.

### **Fuse**

**Bug fixes**

* Fixed an issue where Fuse was not sending payloads to a High5 webhook URL.

### **Stream Designer Studio (SDS)**

**Bug fixes**

* Resolved issues with copying and pasting nodes between stream tabs.
* Fixed streams containing extended ASCII characters that failed during exchange.
* Resolved pagination issues in the custom nodes panel.
* Fixed node inputs not appearing in the debugger when a node fails.
* Corrected text overflow issues in specific scenarios.
* Fixed extended ASCII character rendering in the debugger's payload panel.
* Improved mouse-down events for smoother interactions.

**New features and enhancements**

* Added language support in the extended input window.
* Enabled stream testing without prior publishing.
* Redesigned debugging experience with a payload view and info section.
* Introduced node catalog store and stream tabs.
* Added Quick Add feature for faster node additions.
* Implemented a command palette for improved navigation:
  * Moved test dialog, snapshot dialog, connect agent dialog, settings, and shortcuts to the command palette.
* Enhanced snapline behavior for nodes and annotation nodes.
* Introduced confirmation dialog when closing unsaved streams.
* Added full Markdown support for annotation nodes.
* Enabled snapshot renaming and disabled deletion for published snapshots.
* Introduced support for Stream Node Specification v2.
* Added option to disable animations in SDS.
* Included font size slider in the settings menu.
* Improved zoom and pan behavior for trackpads and scroll wheels.
* Redesigned snackbars for better appearance and positioning.
* Enhanced UI for renaming nodes.

### **Platform OpenAPI**

**Improvements**

* Made multiple updates to OpenAPI files.

### **Wave node blueprint**

**New eeatures and enhancements**

* Added a sample test folder.
* Provided extended documentation for helper methods, node specifications, building, and publishing nodes.
* Added support for `changelog.json` and development releases.

### **Agent**

**Bug fixes**

* Multiple fixes for the Windows Agent, including system tray icon issues.
* Resolved issues with SSL certificate loading.
* Fixed startup failures on macOS and Windows.

**New features and enhancements**

* Introduced a new launcher for the Windows Agent.
* Windows installer now creates a desktop icon by default.

**Changes**

* Signed installers for Windows and macOS.

### **High5**

**Bug fixes**

* Multiple fixes to High5 execution logic.
* Fixed streams being published immediately upon creation.
* Clicking on an execution now opens the corresponding logs.

**New features and enhancements**

* Added option to set Wave Engine to always use the latest version.
* Introduced dialog for managing Wave Engine versions.
* Enhanced webhook security with IP blacklists and whitelists.
* Added response option for webhooks.
* Coupled High5 node catalogs with Wave Engines.

### **helmut.cloud Node Catalogs**

**Core catalog**

* **New features**
  * Added Python node, Respond to Webhook node, and File Download node.
  * Included documentation files for all nodes.
  * Added metadata file to the root of the node catalog.
* **Improvements**
  * Enhanced MacOS Command Runner's handling of return codes.

**Beta Catalogs**

* Frame.io Catalog
* Freespace Catalog
* Telegram Catalog
* Cloudflare R2 Catalog
* Hiscale Catalog
* MongoDB Data API Catalog
* Jitbit Catalog

## 02-08-2024

### **helmut.cloud agent**

**Bug fixes**

* Fixed an issue where the agent threw a "reader closed SyntaxError: Unexpected end of JSON input" at startup.
* Fixed the signing process for the macOS installer.
* Fixed an issue that prevented the agent from starting on Windows.
* Fixed an issue preventing the agent from correctly loading the SSL certificate at runtime.
* Fixed a semantic error in the agent's OpenAPI specification.
* Fixed an issue where the agent failed to load certain modules.
* Fixed an issue where the agent wouldn't start if it couldn't find the bundle.
* Fixed some instabilities during the update process to a new bundle.
* Fixed an issue where the agent was reporting non-IPv4 addresses to the backend.
* Fixed an issue where the agent threw "Unable to determine version: 'Error: ENOENT: no such file or directory."
* Fixed multiple issues that prevented the agent from starting on macOS.
* Fixed an issue where the Windows agent would open a terminal window at startup.
* Fixed the issue with disabling the agent connection.
* Resolved an issue where accessing `http://localhost:6968/api/agent/v1/version` returned "unknown" in a Docker container.

**Improvements**

* Updated the agent's ping interval to the backend to 10 seconds.
* Improve the reliability of the agent's ContextManager.
* Exposed the agent's OpenAPI.
* Extended the status bar menu.
* Implemented automatic reconnection logic in case of connection drops.

**Changes**

* Renamed the agent binary from "hcloud agent" to "helmut cloud agent."
* Updated the application name from "HCloud" to "helmut cloud agent."
* Updated icons for the hcloud agent.

### &#x20;**helmut.cloud backend**

**Bug fixes**

* Fixed an issue preventing the agent from registering with the mothership in certain cases.
* Fixed a problem where license updates were not working correctly for private organizations.
* Addressed a database error that occurred when attempting to create a webhook without specifying a target.<br>

**Improvements**

* Updated the OpenAPI documentation.
* Set wave engine dev images to be skipped by default when creating a space.
* Integrated HMAC encryption into Fuse.
* Prevented users from disabling their account as an execution target in private organizations.

### **helmut.cloud frontend**

**Bug fixes**

* Fixed the icon used for "Win32" OS on the agent dashboard.<br>

**New features and enhancements**

* Added support for signing up and logging in using Microsoft, Google, GitHub, and Discord.
* Added a description field in the new secret dialog.
* Updated user's avatar menu for better usability.
* Updated the organization selector.
* Enabled auto-focus on the password field on the login page.
* Displayed TOTP during personal access token creation/update when 2FA is enabled.
* Introduced a password complexity checker in the sign-up form.

### **helmut.cloud Stream Designer Studio:**

**Bug Fixes:**

* Fixed an issue where pressing the 'delete' key after selecting text in an input field would delete the selected node.<br>

**New features and enhancements**

* Made multiple improvements to the functionality of the annotation node.
* Renamed the unconnected fail outputs to "global fail" when the trigger node global fail connector is connected to a node.
* Automatically display alignment guidelines when a node aligns with the top, right, or left side of another node(s).
* Added a collapsible optional inputs field in the node's configuration panel.
* Added the option to rename manual snapshots.
* Disabled the option to delete a published snapshot.
* Prevented input fields from shifting between sections in the Custom Node dialog.
* Added an edit button to the custom node toolbar to the Custom Node dialog.
* Improved the node search panel and overall search experience.
* Improved the dismissal behavior of snapshot and connect agent modals to close when clicking outside the dialog
* Added code editor to the expanded view of the node's input fields.
* Made Multiple improvements to the shortcut modal.

### helmut.cloud Wave engine

**Bug fixes**

* Fixed an infinite loop within the wildcard resolver.
* Fixed issues with the Node Catalogue on Windows.

### helmut.cloud Wave Node Catalog

**New features and enhancements**

* Decoupled the Wave Engine from the Wave Node Catalog.
* Implemented contract-based versioning for the wave node specifications.
* Added Windows support for wave-execution in the development environment.


