Importing streams in the interface

Importing streams in the interface

CE.png

You can import streams from a JSON file to create new streams or update existing ones. When you import a stream that has the same name as an existing stream, you can either create a separate copy or replace the existing stream with a new version.

Importing a stream from JSON

To import a stream, open the Solutions page and click Import. In the Import stream dialog, you can:

  • Drag and drop a JSON file, or select a file from your file system.

  • Paste a JSON file directly into the text area.

Streams are stored in JSON format, so the file you import must contain a valid stream definition.

When the JSON is loaded, you can review the stream details (such as name and version tag) before importing.

Importing a stream with a unique name

If the stream you are importing has a unique name, it will be imported immediately when you click Import.

import_stream_unique name.png
The Import Stream dialog allows you to upload a JSON file or paste a stream configuration directly

Importing a stream with the same name as an existing stream

When you import a stream with the same name as an existing stream, this dialog appears:

import_stream_name_conflict.png
When a stream with the same name already exists, the conflict resolution dialog lets you choose how to proceed

The Tag and Description fields are optional

  • Tag - A version tag for this stream update (e.g., "v2.0", "Q1-release"). The tag must be unique within the stream's version history, otherwise an error will be shown.

  • Description - A free-text description of this version or the changes being imported.

You can take one of the following actions:

Button

Action

Description

Button

Action

Description

Replace

Overwrites the existing stream

The imported stream configuration replaces the existing stream. The stream keeps its identity (ID), but its nodes (functions), edges (links), and configuration are updated to match the imported file.

Import as new

Creates a separate stream

A new stream is created alongside the existing one. The system automatically handles the naming to avoid duplication.

Cancel

Aborts the import

No changes are made. The import dialog remains open so you can try a different file or adjust settings.

Handling missing functions in the replacement stream

When you attempt to replace a stream and the new stream does not contain all of the functions (nodes) present in the existing stream, a Warning: Function(s) missing dialog appears. The dialog lists the missing functions and their node IDs.

replace_stream_that _has_stateful_functions.png
A warning is shown when replacing a stream would remove functions that exist in the current version

You can take one of the following actions:

Button

Action

Description

Button

Action

Description

Replace anyway

Proceeds with the replacement

The existing stream is overwritten despite missing functions.

Note!
If any of the removed functions are stateful (for example, Data aggregator, Deduplicate, or functions that use persistent stores), their state may become orphaned. In some cases, you can roll back to a previous stream version and re‑attach to this state; in others, the state is no longer visible in the UI and only expires after its configured TTL. Use this option with care in stateful streams and validate rollback and state access in a non‑production environment first. Improvements to make it easier to re‑attach orphaned state to restored functions are planned for a future release.

Cancel

Aborts the replacement

No changes are made.

Handling errors during stream import

The import stream process will go through several validation checks. If any errors or issues are detected during the import, you will see an Action cannot be performed" dialog with the issues listed in red. Errors are validated in stages - you may need to fix one category before the next is revealed.

invalid_Node_Types_Error.png
The warning dialog displays specific errors that must be resolved before the stream can be imported

Error Category

Heading in Modal

Cause

Resolution

Error Category

Heading in Modal

Cause

Resolution

File errors

(shown inline in Import dialog)

Wrong file type, file too large, or invalid JSON syntax.

Ensure you are uploading a valid .json file exported from UsageCloud.

Schema validation

"Validation failed."

Missing or incorrectly named fields in the stream JSON (e.g., missing type, params, x, y on nodes, or using source/target instead of from/to on edges).

Verify all required fields are present. Use a stream exported from UsageCloud as a reference for the correct structure.

Topology validation

"Invalid stream topology"

Edges reference node IDs that do not exist in the stream.

Check that every from and to value in the edges array matches a node id.

Function type validation

"Invalid node types found in stream configuration"

Nodes use function types not available in your environment. Each invalid node is listed as Node {id} ({type}).

Ensure that all function types are present in your solution. This can occur when importing from a different environment.

Name conflict

(Conflict Resolution dialog)

A stream with the same name already exists.

Choose Replace, Import as new, or Cancel. See Importing a stream with the same name as an existing stream

Duplicate tag

(inline in Conflict Resolution dialog)

The version tag already exists in the stream's history.

Enter a different tag or clear the field.

Missing functions

(Warning dialog)

The imported stream removes functions present in the current version.

Review the listed functions and choose Replace anyway or Cancel. See Handling missing functions in the replacement stream

Server error

(inline in Import dialog)

Unexpected server error or network failure.

Check your connection and retry. Contact support if the issue persists.

Version history integration

When a stream is replaced via import, the version history is updated accordingly. See Version history for more information.

Version_History_replaced_stream.png
The Version History panel after a stream replacement