Skip to content

Deeply configure ExposeThing #1408

@relu91

Description

@relu91

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: #1045 #980 #980 #932 #632 (This is a feature request for personalizing BASE uri per TM) #544 (possibly others?)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions