Aggregation Queries
Aggregation queries compute summary values (averages, totals, extremes) across time-series data points instead of returning individual rows. Use these when you need calculated metrics rather than raw data — for example, the average voltage over the last hour or the total energy produced per machine.
Association Roles
Association Roles define the relationship types between entities. Each role specifies the multiplicity and naming for both directions of the relationship (inbound and outbound).
Associations
Associations define relationships between entities in the runtime model. This chapter describes how to query and navigate associations.
Attributes
Attributes are reusable property definitions that can be applied to types. Each attribute has a value type and optional constraints.
Authentication
OctoMesh uses OAuth 2.0 and OpenID Connect (OIDC) for authentication. This page explains how authentication works, which flows are supported, and what happens during the login process.
AutoIncrement
AutoIncrements provide automatic value generation for attributes when entities are inserted into the repository. They ensure unique, sequential values for attributes like customer numbers, document IDs, or any other identifier that requires automatic numbering.
Best Practices
This chapter provides best practices for writing efficient and maintainable GraphQL queries and mutations.
Best practices and recommendations
This section provides best practices and recommendations for creating construction kits.
Clients and API Scopes
In OAuth 2.0, a client is any application that requests access on behalf of a user or itself. API scopes define what operations a client is allowed to perform. The Identity Service manages both per tenant.
Construction Kit
The Construction Kit defines the schema and structure of your data model. Unlike the Runtime Model which stores actual data instances, the Construction Kit contains the metadata that defines what types of entities can exist, their attributes, relationships, and constraints.
Create
GraphQL allows to query and mutate data. Mutations are operations like create, update and delete. This chapter describes how data can be created.
Cross-Tenant Authentication
OctoMesh supports a hierarchical tenant model where a parent tenant can authenticate users in child tenants. This allows organizations to maintain a single user directory while granting access to multiple isolated tenants.
Data Model Concepts
This document explains the fundamental data modeling concepts in OctoMesh, including Construction Kits, Runtime Entities, and Stream Data.
Delete
GraphQL allows to query and mutate data. Mutations are operations like create, update and delete. This chapter describes how data can be deleted.
Downsampling Query
A downsampling query reduces the density of time-series data by dividing a time range into equal-sized buckets and applying an aggregation function to each bucket. This is essential for visualizing large datasets on dashboards and charts — instead of transferring thousands of raw data points, you get a manageable number of summarized values.
Email Domain Group Rules
Email domain group rules automatically assign users to groups based on their email address domain. When a user registers or logs in for the first time, the Identity Service checks their email against configured rules and adds them to matching groups.
Enums
Enums are used for establishing a set of predefined constants, which can represent various states, types, or configurations within the library. Enums are embedded within a Runtime Entity Object and do not need any navigation through associations.
Enums
Enums define a fixed set of allowed values for an attribute. Each enum value has a numeric key, a name, and an optional description.
Error Handling
This chapter describes how errors are returned in GraphQL responses and how to handle them.
Fixup Scripts
Fixup Scripts are MongoDB-compatible scripts that can be applied to databases for maintenance, migration, and data correction tasks. They are executed by the bot service in a defined sequence order, ensuring consistent and predictable database modifications.
Groups
Groups are organizational units that simplify role management. Instead of assigning roles to each user individually, you assign roles to a group and then add users to that group.
Identity Providers
Identity providers allow users to authenticate with OctoMesh using external identity systems. Each tenant can configure multiple providers independently.
Identity Service Overview
The OctoMesh Identity Service provides centralized authentication and authorization for the entire platform. It supports OAuth 2.0 and OpenID Connect protocols.
Installation
OctoMesh uses Communication Operators to manage distributed computing resources using Kubernetes. The Communication Operators are responsible for managing the lifecycle of the Adapters, including creating, updating, and deleting Adapters.
Introduction
In the realm of OctoMesh, adapters and pipelines play a crucial role as the connective tissue between the OctoMesh platform and external data sources and services. These small, but powerful pieces of software are designed to facilitate communication and data exchange across a diverse set of endpoints, including APIs, file systems, databases, message brokers, and other custom or standard protocols. To cater to different architectural needs and deployment scenarios, OctoMesh distinguishes between two main types of adapters: Edge Adapters and Mesh Adapters.
Introduction
At the heart of OctoMesh lies the concept of Construction Kits. These kits serve as a fundamental building block for defining object models and providing the essential context that transforms data into actionable insights. With OctoMesh, you can construct models that align with your specific needs, allowing you to shape data in ways that make sense for your organization.
Introduction to Technology Guide
Welcome to the OctoMesh Technology Guide, your comprehensive resource for leveraging the transformative power of OctoMesh to architect and manage robust data mesh solutions. This guide is crafted to serve as your navigator through the expansive features of OctoMesh, shedding light on the underlying concepts, providing detailed how-to instructions, and offering practical recipes that help you harness the full potential of your data.
Maintenance Dashboard
The Maintenance Dashboard allows to get insights about costs and maintenance activities. It provides a comprehensive overview of the maintenance status of the assets and the costs associated with the maintenance activities. The dashboard is designed to help maintenance managers and technicians to monitor the maintenance activities, track the costs, and identify potential issues that require immediate attention.
Models
Models are containers that group related types, attributes, enums, and records. Each model has a name, version, and can depend on other models.
octo-cli
octo-cli is the command-line interface for managing and administering OctoMesh. It provides commands for configuring services, managing tenants, users, identity providers, and more.
Overview
service coreServices(common:meshLogo)[Core Services] in central
Overview
Adapters are executing pipelines and pipeline consists of nodes. There are nodes that are common for all adapters and there are nodes that are specific for each adapter. For example the Modbus adapter comes with Modbus nodes, the OPC UA adapter comes with OPC UA nodes, etc.
Overview
The integration of OctoMesh with SAP provides a seamless and efficient way to exchange data between the two systems. Leveraging the SAP NetWeaver SDK,
Overview
In OctoMesh, data pipelines are integral to the Extract, Transform, Load (ETL) processes that ensure efficient data handling across distributed environments. These pipelines are categorized into Edge Pipelines and Mesh Pipelines, each executed by specific components within the system: Edge Adapters and Mesh Adapters respectively.
Overview
Pipeline triggers are used to start the execution of a pipeline based on a cron schedule using the Bot Service.
Overview
OctoMesh uses Communication Operators to manage distributed computing resources using Kubernetes. The Communication Operators are responsible for managing the lifecycle of the Adapters, including creating, updating, and deleting Adapters.
Overview
In OctoMesh, we understand that data is at the heart of your operations. This chapter focuses on how you can access and interact with your data through our Construction Kits (CK), tailored for both runtime data and stream (time series) data. Leveraging GraphQL endpoints, OctoMesh offers a seamless and efficient way to work with your data, regardless of its nature.
Persisted Queries
Persisted queries are saved query definitions stored as runtime entities. Instead of specifying all query parameters every time, you create a query definition once and execute it by its rtId. This is useful for dashboard widgets, recurring reports, and any scenario where the same query needs to be executed repeatedly.
Pipeline design
Edge and Mesh Pipelines enable the data flow between the edge and the mesh (cloud) environment. The Edge Pipelines are responsible for preprocessing the data before sending it to the Mesh Pipelines. The Mesh Pipelines are responsible for processing the data in the cloud environment.
Prerequisites
OctoMesh is operated using Kubernetes in production. These docs describe a possibility to run OctoMesh on a local docker environment.
Records
Records are composite value types that group related attributes together. Unlike types, records are embedded directly within entities rather than being independent entities with their own runtime IDs.
Repository Backup & Restore
OctoMesh provides comprehensive backup and restore capabilities for repositories through the octo-cli tool. These
Retrieve
This chapter describes common query patterns for retrieving Construction Kit metadata. The Construction Kit API is read-only - you query the model structure but cannot modify it through GraphQL.
Retrieve
API Approaches
Run container locally
This guide walks you through setting up OctoMesh locally using Docker containers.
Runtime Model
GraphQL allows to query and mutate data. Mutations are operations like create, update and delete. This chapter describes how data can be created, retrieved, updated and deleted. It provides a reference for the GraphQL scalar types, input types, and enums used in the OctoMesh GraphQL API.
SearchFilter
The SearchFilter provides text search capabilities across multiple attributes of an entity. It is optimized for text-based searches and is typically used for search fields in list views.
Simple Query
A simple query retrieves raw time-series rows from CrateDB. You choose which columns to return and can apply filters, sorting, and time range restrictions. This is the most fundamental stream data query type — use it when you need individual data points rather than aggregated summaries.
Solution Architecture Overview
This document provides a comprehensive overview of the OctoMesh platform architecture, designed to help developers understand the system components, data flows, and integration patterns.
Start creating libraries
Start creating libraries
Stream Data Access
Stream data provides access to time-series data stored in CrateDB. While runtime queries retrieve the current state of entities from MongoDB, stream data queries retrieve historical measurements and events recorded over time — such as sensor readings, machine metrics, or energy production values.
System Queries
This chapter describes how to create System Queries. For an overview of System Queries and their use cases, see System Queries.
System Queries
System Queries are reusable query configurations stored in the repository. They allow you to define a query once and execute it from multiple places using only its ID.
System Queries
This chapter describes how to update System Queries. For an overview of System Queries and their use cases, see System Queries.
Tenant Lifecycle
This guide explains what happens when tenants are created, attached, or restored, and what steps you need to take in each scenario.
Transient Queries
Transient queries allow you to dynamically query runtime entities with configurable column paths. Unlike regular queries where the returned fields are defined in the GraphQL query itself, transient queries return data in a table-like structure with rows and cells.
Types
Types define the structure of entities in the Runtime Model. Each type has attributes, can inherit from a base type, and can participate in associations with other types.
Update
GraphQL allows to query and mutate data. Mutations are operations like create, update and delete. This chapter describes how data can be updated.
Users and Roles
Users