Skip to content

Annotations

When metadata management features were added in Release 2, users needed a reliable way to “clean” data without modifying the original records. This included the ability to adjust values through expressions, apply quality flags, or exclude ranges where bad data existed.

To achieve this, the dynamic configuration concept was extended further with Annotations and Actions.

An Annotation is tied to a specific time interval (begins at, ends before) and contains one or more Actions. An Action defines an operation to be performed only within that interval — such as applying a mathematical expression, adding a quality flag, or excluding data.

Once annotations are attached to datastreams, a build process flattens the original datapoints configs and all relevant annotations into a single linear, time-ordered list. This resulting structure tells the system exactly where to retrieve the raw data for any given timeframe and what enrichments or transformations to apply on read.

These configuration records are themselves treated as time-series data, enabling versioned and reversible data cleaning — all while the original raw datapoints remain untouched.

---
config:
  flowchart:
    nodeSpacing: 40
    rankSpacing: 60
    padding: 16
---
flowchart TB
    subgraph Inputs["Attached to datastream"]
        direction LR
        DC["Datapoints Configs<br/>source per timeframe"]
        AN["Annotations + Actions<br/>scoped to intervals"]
    end

    subgraph List["Time-ordered list"]
        direction TB
        S1["Segment 1<br/>source only"]
        S2["Segment 2<br/>source + action"]
        S3["Segment 3<br/>source only"]
        S1 --> S2 --> S3
    end

    subgraph QueryTime["At query time"]
        Client["Client<br/>Main App · API client"]
        API["API<br/>retrieve & apply per segment"]
    end

    Raw[(Raw datapoints<br/>never modified)]

    DC --> List
    AN --> List
    List --> API
    Client -->|"requests data"| API
    API -->|"queries"| Raw
    API -->|"returns cleaned data"| Client