eclipse-thingweb / eclipse-thingweb/node-wot

Deeply configure ExposeThing

Open
#1,408 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
TypeScript
Stars
192
Forks
100
Avg merge
3d 2h
Merged PRs (30d)
6

Description

The process of personalizing the configuration of an ExposedThing is currently scattered and not systematically organized. Based on our recent committers' call, we aim to formalize this process by distinguishing between two primary use cases: global (Servient-level) configuration and application (Thing-level) configuration.

We should structure the configuration options into two main categories:

### Global Configuration (Servient Level)

These settings apply to the entire WoT Servient and act as defaults for all `ExposedThing` instances it manages.

* **Base Address**: Define host, ports, and URI prefixes for protocols.
* *Examples*: `http`, `coap`, `ws`, and protocol-specific details like `unitID` for Modbus.
* *Status*: Partially supported through per-binding configuration ✅
* **Security**: Set default security mechanisms and credentials for all exposed Things.
* *Status*: Supported ✅
* **Content-Type**: Specify a default `contentType` to be used for all interactions across all Things.
* *Status*: Not currently supported ❌
* **Protocols**: The complete list of protocol bindings available in the Servient.
* *Status*: Supported ✅

### Application-Specific Configuration (Thing Level)

These settings allow for overriding the global defaults for a specific `ExposedThing`, providing fine-grained control at the application level.

* **Security**: Override the global security scheme with a Thing-specific one per form.
* *Status*: Not currently supported ❌
* **Content-Type**: Specify a `contentType` for a particular interaction, overriding any global or Thing-level default.
* *Status*: Partially supported for HTTP ✅
* **Responses / additionalResponses**: Define custom or additional `responses` for interactions.
* *Status*: Not currently supported ❌
* **Protocol Selection**: Select a specific subset of the globally available protocols for the Thing to be exposed on.
* *Status*: Not currently supported ❌

---

**Related to**: https://github.com/eclipse-thingweb/node-wot/issues/1045 https://github.com/eclipse-thingweb/node-wot/issues/980 https://github.com/eclipse-thingweb/node-wot/issues/980 https://github.com/eclipse-thingweb/node-wot/issues/932 https://github.com/eclipse-thingweb/node-wot/issues/632 (This is a feature request for personalizing BASE uri per TM) https://github.com/eclipse-thingweb/node-wot/issues/544 (possibly others?)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.