eclipse-thingweb / eclipse-thingweb/node-wot
Deeply configure ExposeThing
- 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
Assessment
This issue has not been assessed yet.