Skip to content

CSE Core Plugins

CSE core plugins are plugins that are used to implement runtime functionalities of the CSE, such as the statistics functionality, the web UI, or the console. They are loaded and managed by the PluginManager just like any other plugin, but they are used in a special way by the CSE to provide runtime functionalities.

When the CSE starts up, it loads all the core plugins for enabled core functionalities from the internal plugins directory. This helps to keep the resource usage of the CSE low, as only the internal and third-party Python packages that are actually needed are loaded.

The following sections lists the currently available core plugins, the functionalities they provid, and the configuration settings that are responsible for enabling them.

Protocol Bindings

Plugin Name Functionality Responsible Configuration Setting
acmecse.plugins.bindings.CoAPServer Provides the CoAP protocol binding. [coap]:enable
acmecse.plugins.bindings.HttpServer Provides the HTTP protocol binding. [http]:enable
acmecse.plugins.bindings.MQTTClient Provides the MQTT protocol binding. [mqtt]:enable
acmecse.plugins.bindings.WebSocketServer Provides the WebSocket protocol binding. [websocket]:enable

Note

At least one protocol binding plugin must be enabled for the CSE to function properly, as the CSE relies on protocol bindings to receive and process requests.

Console & UIs

Plugin Name Functionality Responsible Configuration Setting
acmecse.plugins.bindings.http.HttpWebUI Provides the web UI functionality.
Runs together with the HTTP server.
[webui]:enable
acmecse.plugins.runtime.Console Provides the console functionality.
Runs together with the CSE core and provides a rich console UI for interacting with the CSE.
This is the CSE's default console.
[basic.config]:consoleType = rich
acmecse.plugins.runtime.MinimalConsole Provides a minimal console functionality.
Runs together with the CSE core and provides a minimal console UI for interacting with the CSE.
This is an alternative, less resource-intensive console.
[basic.config]:consoleType = simple
acmecse.plugins.runtime.TextUI Provides the text UI functionality.
Runs together with the CSE core and provides a text-based user interface for interacting with the CSE.
[textui]:enable

Runtime

Plugin Name Functionality Responsible Configuration Setting
acmecse.plugins.runtime.Statistics Provides the statistics functionality.
Runs together with the CSE core and collects runtime statistics.
[cse.statistics]:enable

Services

The service plugins implement oneM2M's Common Service Functions They run together with the CSE core.

Plugin Name Functionality Responsible Configuration Setting
acmecse.plugins.services.ActionManager Provides the action management services. [cse.service.action]:enable
acmecse.plugins.services.AnnouncementManager Provides the announcement management services.
The acmecse.plugins.services.RemoteCSEManager plugin is required for this plugin.
[cse.service.announcement]:enable
acmecse.plugins.services.GroupManager Provides the group management services. [cse.service.group]:enable
acmecse.plugins.services.LocationManager Provides the location management services. [cse.service.location]:enable
acmecse.plugins.services.RemoteCSEManager Provides the remote CSE management services. [cse.service.remoteCSE]:enable
acmecse.plugins.services.SemanticManager Provides the semantic management services. [cse.service.semantic]:enable
acmecse.plugins.services.TimeManager Provides general time management services. [cse.service.time]:enable
acmecse.plugins.services.TimeSeriesManager Provides the timeSeries management services. [cse.service.timeSeries]:enable

Note

By disabling a service plugin, the corresponding oneM2M service will not be available in the CSE. The related oneM2M resource types may still be available, but they will operate in a limited way. Creation or update of resources that rely on the service may cause NOT_IMPLEMENTED errors.

For example, when disabling the LocationManager plugin, the <LocationPolicy> resource may still be available, but its functionality will be very limited or even disabled.

Database

Plugin Name Functionality Responsible Configuration Setting
acmecse.plugins.database.PostgreSQLBinding Provides the PostgreSQL database binding functionality. [basic.config]:databaseType
acmecse.plugins.database.TinyDBBinding Provides the TinyDB database binding functionality for memory and file-based storage. [basic.config]:databaseType

Note

Only one database binding is loaded at a time, depending on the value of the databaseType setting in the basic configuration.

Management & Testing

Plugin Name Functionality Responsible Configuration Setting
acmecse.plugins.bindings.http.HttpManagement Provides the HTTP management API functionality.
This plugin requires the HTTP Server to be enabled.
[http]:enableManagementEndpoint
acmecse.plugins.bindings.http.HttpStructure Provides the HTTP structure API functionality.
This plugin requires the HTTP Server to be enabled.
[http]:enableStructureEndpoint
acmecse.plugins.bindings.http.HttpUpperTester Provides the HTTP Upper Tester functionality.
This plugin requires the HTTP Server to be enabled.
It is usually only needed for testing purposes.
[http]:enableUpperTesterEndpoint

Note

The HTTP management API, structure API and upper tester functionalities are only available if the HTTP Server plugin is enabled, as they rely on the HTTP protocol to provide their functionalities.