Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
6a7d17e
fix: update InfluxDB configuration for version 1 and add setup for ve…
dk-emag Jan 21, 2026
05560ed
feat: add InfluxDB version 2 support and update configuration structure
dk-emag Jan 21, 2026
bdef9e1
fix: update requirements for InfluxDB client compatibility
dk-emag Jan 21, 2026
515fc5d
feat: update InfluxDB support to version 2 with new configuration and…
Jan 22, 2026
4401bba
feat: implement InfluxDB v2 client interface and update InfluxDB inte…
dk-emag Jan 23, 2026
224b464
feat: add InfluxDB v2 datasource configuration with Flux support
dk-emag Jan 23, 2026
d6ad985
fix: update InfluxDB v1 datasource credentials for consistency
dk-emag Jan 23, 2026
eb2334c
fix: standardize casing for AssetConnector configuration fields
dk-emag Jan 23, 2026
46ffef8
feat: add changelog file with initial version details and improvements
dk-emag Jan 23, 2026
0174daa
fix: update changelog date and standardize README and backup document…
dk-emag Jan 23, 2026
191fb35
feat: reorganize documentation by adding development environment deta…
dk-emag Jan 23, 2026
5420b45
feat: enhance configuration documentation with detailed parameter sec…
dk-emag Jan 26, 2026
dd83a47
fix: update AasId and InfluxDbVersion in DevContainerEnv.json; enhanc…
dk-emag Jan 26, 2026
005f3cb
refactor: streamline configuration documentation by reorganizing sect…
dk-emag Jan 26, 2026
df8f819
fix: correct heading levels in InfluxDB settings section of configura…
dk-emag Jan 26, 2026
73df909
feat: add InfluxDB version sections to configuration documentation
dk-emag Jan 26, 2026
5de64e5
feat: update InfluxDB configuration and enhance payload writing with …
dk-emag Jan 26, 2026
6475c7f
fix: improve formatting of authentication settings table in configura…
dk-emag Jan 26, 2026
295d7fe
feat: enhance configuration documentation with improved structure and…
dk-emag Jan 26, 2026
9d56188
fix: correct InfluxDB section headings and improve configuration para…
dk-emag Jan 26, 2026
ad08d2e
fix: update AAS Server authentication settings section and improve co…
dk-emag Jan 26, 2026
cd2e9df
fix: enhance configuration documentation with additional examples for…
dk-emag Jan 26, 2026
81a9580
fix: update configuration documentation with improved section heading…
dk-emag Jan 26, 2026
46eb609
fix: add additional AAS Server configuration parameters for proxy set…
dk-emag Jan 26, 2026
08718ba
fix: update InfluxDB configuration details and clarify version requir…
dk-emag Jan 26, 2026
00148dc
fix: update AAS Server authentication settings to mark required field…
dk-emag Jan 26, 2026
cfa98da
fix: update configuration documentation with improved section heading…
dk-emag Jan 26, 2026
34d1cf0
fix: update changelog to include WIP documentation rework
dk-emag Jan 26, 2026
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
33 changes: 28 additions & 5 deletions .devcontainer/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ services:
image: influxdb:1.11.8
container_name: influx_database_v1-rt
ports:
- "8079:8086"
- "8030:8086"
volumes:
- influxdb_data:/var/lib/influxdb
- influxdb_v1_data:/var/lib/influxdb
restart: always
environment:
INFLUXDB_DB: submodel-db
INFLUXDB_ADMIN_USER: admin
INFLUXDB_ADMIN_PASSWORD: fluid40
INFLUXDB_ADMIN_PASSWORD: fluid40secure!
INFLUXDB_USER: fluid40
INFLUXDB_USER_PASSWORD: wbEx!S!#4OHcN!5X
healthcheck:
Expand All @@ -34,14 +34,36 @@ services:
retries: 5
start_period: 10s

influx_database_v2:
image: influxdb:2.7
container_name: influx_database_v2-rt
ports:
- "8031:8086"
volumes:
- influxdb_v2_data:/var/lib/influxdb2
restart: always
environment:
DOCKER_INFLUXDB_INIT_MODE: setup
DOCKER_INFLUXDB_INIT_USERNAME: admin
DOCKER_INFLUXDB_INIT_PASSWORD: fluid40secure!
DOCKER_INFLUXDB_INIT_ORG: fluid40-org
DOCKER_INFLUXDB_INIT_BUCKET: fluid40-bucket
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: wbEx!S!#4OHcN!5X
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8086/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s

grafana:
image: grafana/grafana:latest
container_name: grafana-rt
ports:
- "8076:3000"
environment:
GF_SECURITY_ADMIN_USER: admin
GF_SECURITY_ADMIN_PASSWORD: IDKFA-fluid40
GF_SECURITY_ADMIN_PASSWORD: fluid40
depends_on:
influx_database_v1:
condition: service_healthy
Expand Down Expand Up @@ -127,5 +149,6 @@ services:
- RUNTIME_CONFIGURATION_FILE=./configuration/DevContainerEnv.json

volumes:
influxdb_data:
influxdb_v1_data:
influxdb_v2_data:
grafana_data:
21 changes: 19 additions & 2 deletions .devcontainer/grafana/provisioning/datasources/influxdb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,32 @@ datasources:
access: proxy
url: http://influx_database_v1-rt:8086
database: submodel-db
user: admin
user: fluid40
jsonData:
tlsAuth: false
tlsAuthWithCACert: false
secureJsonData:
tlsCACert: ""
tlsClientCert: ""
tlsClientKey: ""
password: IDDQD-fluid40
password: wbEx!S!#4OHcN!5X
isDefault: true
editable: false
version: 1


- name: RuntimeInfluxDBv2
uid: influxdb-v2
type: influxdb
access: proxy
url: http://influx_database_v2-rt:8086

jsonData:
version: Flux
organization: fluid40-org
defaultBucket: fluid40-bucket
tlsSkipVerify: false


secureJsonData:
token: wbEx!S!#4OHcN!5X
1 change: 1 addition & 0 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ jobs:
### 🧩 Build Information
- Docker image: `engineeringmethodsag/fluid-runtime:${{ steps.version.outputs.version }}-${{ steps.version.outputs.hash }}`
- Latest tag: `engineeringmethodsag/fluid-runtime:latest`
- [Changelog](CHANGELOG.md)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Changelog

## [0.12.1] - 2026-01-23
- ✨Feature: Ass support for InfluxDB database version 2
- 🚀Improvement: Improve structure of data written to database
- 🚀Improvement: Standardization of configuration property names (see [configuration](docs/configuration.md))
- 📄Documentation: Re-Work documentation (WIP)
44 changes: 5 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Runtime
# Micro-Service

<div align="center">
<img src="docs/assets/fluid_logo.svg" alt="aas_http_client" width=500 />
Expand All @@ -9,52 +9,18 @@
[![CI](https://github.com/fluid40/runtime/actions/workflows/docker-image.yml/badge.svg?branch=main&cache-bust=1)](https://github.com/fluid40/runtime/actions)
[![License](https://img.shields.io/badge/license-MIT-orange.svg)](LICENSE)

- [Runtime](#runtime)
- [Micro-Service](#micro-service)
- [🌐 Overview](#-overview)
- [🔗 Topics](#-topics)
- [🧩 Components](#-components)
- [🏭 Provided Environments](#-provided-environments)

## 🌐 Overview
The microservice implements the use case of reading operating data from a tool, making this data available within the submodel structure, and optionally writing it to an InfluxDb database.

The runtime environment uses an AID submodel from a specific shell to configure an MQTT or OPC UA broker connection. The runtime then reads machine data from the broker at regular intervals.
If an Influx database has been connected, the data is stored there.
The runtime runs as a server component and provides REST endpoints to output the currently read machine data.

## 🔗 Topics

- 🛠️ [Configuration](docs/configuration.md)
- 🏭 [Environments](docs/environments.md)
- 🏭 [Development](docs/development.md)


## 🧩 Components

The runtime relies on several components to operate effectively. Each plays a specific role in data management and system integration:

| Component | Requirement | Description | Link |
| ------------------------------ | ----------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| **AAS Server** | Required | Responsible for managing all Asset Administration Shells (AAS) and their submodels. | e.g. [Link](https://github.com/eclipse-basyx/basyx-java-server-sdk) |
| **Asset Administration Shell** | Required | An AAS hosted on the AAS Server, containing a fully configured AID and AIMC submodel. | |
| **Asset Connector** | Required | Interfaces with MQTT or OPC UA brokers to retrieve real-time machine data. | [Link](https://github.com/fluid40/asset-connector) |
| **InfluxDB** | Optional | Stores the data collected by the Asset Connector. | [Link](https://www.influxdata.com/) |


## 🏭 Provided Environments

The runtime is provided in two different environments, depending on your use case and setup preferences:

1. 💻 [DevContainer](docs/environments.md#-devcontainer)
- Provides all components pre-installed and ready to use.
- The runtime itself must still be started manually from the source code.
- For development, testing, or debugging individual components.

The following table summarizes the key characteristics of the two provided environments:

| Environment | Components Provided | Runtime Startup | Use Case / Purpose |
| ---------------- | ------------------- | ----------------------------------------- | ----------------------------------------------------- |
| **DevContainer** | All components | Must be started manually from source code | Development, testing, debugging individual components |

<div align="center">
<img src="docs/images/architecture.png" alt="Architecture" width=600 />
</div>
## Resources

27 changes: 13 additions & 14 deletions configuration/DevContainerEnv.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
{
"AasId": "https://fluid40.de/ids/shell/5793_5449_7830_4223",
"PollingInterval": 5,
"AssetConnector": {
"base_url": "http://asset_connector-rt:8000/",
"time_out": 60,
"connection_time_out": 60,
"trust_env": false
"BaseUrl": "http://asset_connector-rt:8000/",
"TimeOut": 60,
"ConnectionTimeOut": 60,
"TrustEnv": false
},
"AasServer": {
"BaseUrl": "http://javaserver-rt:8077/",
Expand All @@ -15,15 +16,13 @@
"TrustEnv": false,
"EncodedIds": false
},
"InfluxDbVersion": "1",
"InfluxDb": {
"host": "influx_database_v1-rt",
"port": 8086,
"username": "fluid40",
"database": "submodel-db",
"connection_time_out": 60,
"trust_env": false
},
"PollingInterval": 5,
"WriteInflux": true,
"PutSubmodel": false
"Host": "influx_database_v1-rt",
"Port": 8086,
"Username": "fluid40",
"Database": "submodel-db",
"ConnectionTimeOut": 60,
"TrustEnv": false
}
}
57 changes: 57 additions & 0 deletions docs/backup.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Micro-Service

<div align="center">
<img src="docs/assets/fluid_logo.svg" alt="aas_http_client" width=500 />
</div>

---

[![CI](https://github.com/fluid40/runtime/actions/workflows/docker-image.yml/badge.svg?branch=main&cache-bust=1)](https://github.com/fluid40/runtime/actions)
[![License](https://img.shields.io/badge/license-MIT-orange.svg)](LICENSE)

- [Runtime](#runtime)
- [🌐 Overview](#-overview)
- [🔗 Topics](#-topics)
- [🧩 Components](#-components)
- [🏭 Provided Environments](#-provided-environments)

## 🌐 Overview
The micro service implements the use case

## 🔗 Topics

- 🛠️ [Configuration](docs/configuration.md)
- 🏭 [Environments](docs/environments.md)


## 🧩 Components

The runtime relies on several components to operate effectively. Each plays a specific role in data management and system integration:

| Component | Requirement | Description | Link |
| ------------------------------ | ----------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| **AAS Server** | Required | Responsible for managing all Asset Administration Shells (AAS) and their submodels. | e.g. [Link](https://github.com/eclipse-basyx/basyx-java-server-sdk) |
| **Asset Administration Shell** | Required | An AAS hosted on the AAS Server, containing a fully configured AID and AIMC submodel. | |
| **Asset Connector** | Required | Interfaces with MQTT or OPC UA brokers to retrieve real-time machine data. | [Link](https://github.com/fluid40/asset-connector) |
| **InfluxDB** | Optional | Stores the data collected by the Asset Connector. | [Link](https://www.influxdata.com/) |


## 🏭 Provided Environments

The runtime is provided in two different environments, depending on your use case and setup preferences:

1. 💻 [DevContainer](docs/environments.md#-devcontainer)
- Provides all components pre-installed and ready to use.
- The runtime itself must still be started manually from the source code.
- For development, testing, or debugging individual components.

The following table summarizes the key characteristics of the two provided environments:

| Environment | Components Provided | Runtime Startup | Use Case / Purpose |
| ---------------- | ------------------- | ----------------------------------------- | ----------------------------------------------------- |
| **DevContainer** | All components | Must be started manually from source code | Development, testing, debugging individual components |

<div align="center">
<img src="docs/images/architecture.png" alt="Architecture" width=600 />
</div>

Loading