FROST-Server Documentation

Live documentation for the development version.

Plugin Configuration Options

The functionality of FROST-Server can be expanded using plugins. Which plugins are loaded is controlled by two parameters:

Besides these configuration options telling FROST which plugins exist, each plugin usually has a separate option that controls whether the plugin is active or not.

See the CoreModel and CoreModelV2 sections below.

Data Model Plugins

These plugins implement the data models are provided with FROST-Server by default.

SensorThings V1.1 & v2.0

The SensorThings API and its datamodel are plugins in FROST. There are separate plugins for the v1.1 data model, the v2.0 data model, the v1.1 API and the v2.0 API.

Not that both API plugins can be enabled at the same time, but only one of the data model plugins. The V2 data model plugin requires the ModelLoader plugin.

Actuation

The actuation plugin implements the standard OGC SensorThings API - Part 2: Actuation. It adds the entity types described in this specification. This plugin requires either the CoreModel or the coreModelV2 plugin. If the coreModelV2 plugin is active, the actuation plugin will use the Actuation extension from the draft OGC 24-046, OGC SensorThings API 2.0 Extensions.

CoreModel

The Core Model plugin implements the data model of the standard OGC SensorThings API - Part 1: Sensing. It adds the entity types described in this specification and their behaviour.

CoreModelV2

The Core Model plugin implements the data model of the standard OGC SensorThings API 2.0. It adds the entity types described in this specification and their behaviour. This plugin inherits the plugins.modelLoader.idType.<EntityTypeName>: settings from the ModelLoader plugin.

MultiDatastream

The MultiDatastream plugin implements the MultiDatastream extendion of the OGC SensorThings API standard. This plugin requires the CoreModel plugin.

ModelLoader

The ModelLoader plugin can load data models and security definitions from files. The models loaded by this plugin may require other data model plugins. Data model files and security definition files can be edited with the ModelEditor. Data model files can be initially generated from an existing database using the ModelExtractor.

Using Security Wrappers and Security Validators it is possible define in minute detail what a user is allowed to read, create, update and delete. The rules for this can take into account what the relations are that each Entity has with other Entities, as deep as required. Setting this up correctly is not trivial and a mistake in the authorisation may inadvertently open your data for reading or even editing. Therefore, we strongly recommend you contact us for support if your use case requires fine-grained authorisation.

Projects

The Projects plugin extends the standard data model with a Project class and User/Role classes that allow fine-grained access control. This plugin requires the ModelLoader and either CoreModel or CoreModelV2 plugins.

Settings for the UserRoleDecoder class UserRoleDecoderDflt

When auth.registerUserLocally is used in the KeyCloak Auth Provider, the class de.fraunhofer.iosb.ilt.frostserver.plugin.projects.ProjectRoleDecoder can be used to register users and user-roles in the relevant tables.

Response Format Plugins

These plugins enable various response formats.

DataArray

The DataArray plugin implements the SensorThings Data Array Extension as described in the SensorThings API standard.

CSV Result Format

The CSV plugin implements a CSV result formatter, enabling CSV output as described in: CSV-ResultFormat

GeoJSON Result Format

The GeoJSON plugin implements a GeoJSON result formatter, enabling GeoJSON output as described in: GeoJSON-ResultFormat

Other Plugins

These plugins enable various other behaviours.

BatchProcessing

The BatchProcessing plugin implements the Batch Requests extension as described in the SensorThings API standard.

OData

The OData plugin makes the data in your FROST-Server available as OData 4.0 and 4.01 API. The endpoint for these are on [service root URL]/ODATA_4.0/ and [service root URL]/ODATA_4.01/.

OpenAPI

The OpenAPI plugin makes an OpenAPI description of the SensorThings service available at the /v1.x/api path. This description is still experimental, and probably incomplete. If you use it and have experience with OpenAPI, we welcome feedback!