Skip to content

Extend storage integration page content #1434

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 36 additions & 4 deletions doc/content/integrations/storage/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,53 @@ The Storage Integration is implemented as an Application Package, and can be ena

## How it works

The Storage Integration runs on the Application Server and watches for upstream traffic (join requests, data uplink message, data downlink message, etc). When an upstream message is received from an end device for which the integration has been configured, the message data (Payload, FPort, Decoded Fields, as well as all relevant metadata) are written in a persistent database.
The Storage Integration runs on the Application Server and watches for upstream traffic (join requests, data uplink messages, data downlink messages, etc). When an upstream message is received from an end device for which the integration has been configured, the message data (Payload, FPort, Decoded Fields, as well as all relevant metadata) are written to a persistent database.

Data retention period is 30 days for {{% tts %}} Cloud and 24 hours for {{% ttss %}} distributions. For {{% tts %}} Enterprise distributions, data retention period can be [configured]({{< ref "/integrations/storage/configuration" >}}).

A gRPC service and an HTTP API are exposed so that stored messages can then be retrieved.

{{< note >}} {{% tts %}} Cloud stores only uplink messages. {{</ note >}}
{{< note >}}
{{% tts %}} Cloud stores only uplink messages.
{{</ note >}}

{{< warning >}}
The Storage Integration should not be used for querying realtime data. For scalability reasons, writes to the Storage Integration database are performed in batches and there may be a delay after an uplink is received, before it is available. For realtime alerts, use [Webhooks]({{< ref "integrations/webhooks" >}}).
{{</ warning >}}

## Typical use cases
---

## Viewing stored messages
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be tagged with to the version where this was implemented ## Viewing stored messages {{< new-in-version "3.34.1">}}


The Console offers a view for checking the Storage Integration status and displays recently stored messages.

{{< figure src="enable/activated-storage-integration.png" alt="Activated storage integration" >}}

This view allows filtering by end device and time range, and displays stored messages along with decoded payloads and metadata.

{{< note >}}
For performance reasons, only the first 10 results are shown in the Console.
{{</ note >}}
Comment on lines +39 to +43
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a screenshot of active data in an application.


---

## Downloading messages

The Console allows you to download the **messages currently displayed in the table** view. This provides a quick way to extract and inspect recent stored messages.

{{< figure src="download-stored-messages.png" alt="Download stored messages" >}}

Click the **Download** button to download the visible messages in one of the following formats:

- **JSON**: Ideal for programmatic access or integration with other systems.
- **CSV**: Convenient for spreadsheets, quick inspection, or basic analysis.

---

## Typical use cases

- Long-term storage of historical data for end-devices.
- No need to maintain a connection with {{% tts %}} at all times, e.g. for end devices that send messages infrequently.
- Reliable message persistence for low-frequency or offline-capable devices.
- Decoupled integrations where message delivery doesn't require constant connectivity.
Comment on lines +63 to +64
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure this is better than what it was.


Detailed instructions about storage integration are in the topics below.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading