/FROST-Server

A Complete Server implementation of the OGC SensorThings API

Primary LanguageJavaGNU Lesser General Public License v3.0LGPL-3.0

FROST-Server Build Status Codacy Badge Docker badge

FROST-Server Logo Certified OGC Compliant Logo

A Server implementation of the OGC SensorThings API. The FRaunhofer Opensource SensorThings-Server is the first complete, open-source official reference implementation of the OGC SensorThings API Part 1: Sensing 1.0. It also implements OGC SensorThings API Part 1: Sensing 1.1 and OGC SensorThings API Part 2: Tasking Core 1.1.

Downloading

Instead of compiling the server yourself, you can also download pre-built war and jar files from Maven Central:

Or you can use Docker.

Extendable Data Model and pluggable APIs

FROST-Server implements the SensorThings API data model and API, but is not limited to these. Using plugins the data model can be extended or even completely replaced depending on your specific requirements. APIs and result formats can also be added using plugins. By default, FROST-Server comes with experimental plugins for the OData 4.0 and 4.01 APIs and for CSV and GeoJSON result formats.

Fine-grained Authorisation

Authorisation rules can either be simple with Read, Create, Update and Delete on a service level, or they can be very fine-grained with, for instance, certain users being able to read or create only Observations in Datastreams of certain Things.

Documentation

Documentation can be found on the documentation site

Changes and Updates

See the Change Log.

Kubernetes (Helm) support

See helm/frost-server/README.md for how to use the FROST-Server Helm chart for a Kubernetes deployment.

Compiling

To compile FROST-Server you need to have a JDK and Maven installed.

  1. Checkout the project from github: git clone https://github.com/FraunhoferIOSB/FROST-Server.git
  2. Go to the project root (The top-most directory with a pom.xml) cd FROST-Server
  3. Give the command mvn clean install. This should build the war and jar files in:
    • FROST-Server.MQTTP/target/
    • FROST-Server.HTTP/target/
    • FROST-Server.MQTT/target/ You may have to add the option -Djavafx.platform=win (win can be replaced with linux or mac) if the JavaFx platform is not detected automatically.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions are greatly appreciated. You can read more in our contribution guidelines.

Authors

Hylke van der Schaaf, Michael Jacoby

frost@iosb.fraunhofer.de

License

Copyright (C) 2024 Fraunhofer Institut IOSB, Fraunhoferstr. 1, D 76131 Karlsruhe, Germany.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.