Mobius4 is the next version of Mobius which basically implements the global IoT middleware standard, oneM2M. This new version provides the new code base with modern Javascript async-await syntax for better readibility and maintenance. Also, the database has been changed from MySQL to PostgreSQL with PostGIS.
In oneM2M Release 5, TR-0071 is defining candidate solutions for AIoT applications. Mobius4 implements those features in advance before the public release so developers can try them.
Mobius4 is the first product to be certified as a oneM2M Release 2 compliant Common Services Entity (CSE, also known as an IoT platform). By the configuration, it runs as ASN/MN-CSE as well as IN-CSE.

Mobius4 implements oneM2M Common Services Entity (CSE) which is the IoT middleware. By the configuration, it runs as ASN/MN-CSE as well as IN-CSE.
oneM2M protocol bindings:
- HTTP
- MQTT
oneM2M primitive serialization:
- JSON
oneM2M resource types (until Release 4):
- CSEBase, AE, remoteCSE
- accessControlPolicy
- container, contentInstance, latest, oldest
- subscription
- group, fanOutPoint
oneM2M resource types (oneM2M TR-0071, next release):
- modelRepo, mlModel, modelDeployList, modelDeployment
- mlDatasetPolicy, dataset, datasetFragment
Other features:
- discovery with Filter Criteria parameter
- geo-query with location common attribute (Rel-4 feature)
- children resources retrieval with Result Content parameter
Beyond the oneM2M standard, Mobius4 includes the following operational capabilities for production deployments.
Observability:
- Structured JSON logging via Pino with daily log rotation (
logging.*) - Health check endpoint
GET /health— for load balancers and container liveness probes - Prometheus-compatible metrics endpoint
GET /metrics(disabled by default; enable viametrics.enabled)
Security:
- HTTP security headers via Helmet (disabled by default; enable via
security.helmet.enabled) - Per-IP rate limiting (disabled by default; enable via
security.rateLimit.enabled)
Resilience:
- Graceful shutdown on
SIGTERM/SIGINT— ordered teardown of HTTP, MQTT, and database connections with a 30-second forced-exit fallback - MQTT exponential backoff reconnection — configurable initial delay, multiplier, jitter, and max attempts (
mqtt.reconnect.*)
Operations:
- Local configuration override via
config/local.json(gitignored) — credentials and environment-specific settings never committed - PM2 process management via
ecosystem.config.js— auto-restart, environment profiles, graceful stop integration
Try oneM2M APIs over HTTP binding with Postman client. You can download Postman script collection and import it on your Postman. There are two variables set in the collection mp_url for Mobius4 platform URL and cb for CSEBase resource name, so please add in your Postman variable settings.
There are some modifications from the previous version so please check Mobius4 how-to for the Mobius developers. If you're trying the new oneM2M features on AI, check Rel-5 features how-to.
Since Mobius4 is developed with Node.js and PostgreSQL, any operating system that supports them can run Mobius4.
- Node.js v22
- PostgreSQL v17
- PostGIS
- MQTT broker (e.g. Mosquitto)
For OS-specific installation instructions (Windows, macOS, Linux): docs/installation.md
-
Create a database named
mobius4on PostgreSQL -
Get Mobius4 source codes from this git repository
git clone https://github.com/iotketi/mobius4- Install node packages in the 'mobius4' folder
cd mobius4
npm install- Set Mobius4 configuration file
cp config/local.json.example config/local.json
# edit config/local.json with your DB credentials and local settings- Run Mobius4
node mobius4.jsFull configuration reference: docs/configuration.md
For deployment details (health check, metrics endpoint, PM2, resource browser): docs/operations.md
| Version | Date | description |
|---|---|---|
| 4.0.0 | 2025-09-22 | Initial release of Mobius4 |
| 4.1.0 | 2026-03-13 | oneM2M Rel-2 certification |
| 4.2.0 | 2026-04-05 | logging module update |
