...
- The service should implement the functionality described in the Device Services Requirements document. Services written in Go or C should achieve this by using the official SDK.
- The service should target either the current or development versions of EdgeX.
- The service should not rely on new or variant APIs.
- The service's name should should follow the usual form, ie edgex-{device-class}-{language} and not conflict with any other adopted service.
- Values must not be hardcoded where they might reasonably be configurable.
- If the devices may connect via a secure mode, credentials must be obtained via the Secrets API rather than the service configuration
- Note - this does not apply to C device services until the Secrets API is implemented in the C SDK
- A top-level README should be present and contain information on
- The types of device supported
- Host device requirements, especially if advanced features or operating modes are needed.
- Run-time dependencies
- Protocol feature support and roadmap
- Known limitations
- Information on asynchronous readings, if these are generated
- Whether dynamic discovery is supported, and if so what limitations or special requirements apply
- Build instructions, including build-time dependencies
- Usage information (command-line options)
- The following items must also be documented:
- Supported configuration options (including whether or not the service must be restarted for changes to take effect)
- Supported ProtocolProperties schemes.
- Supported Device Attributes.
- As part of the above, example Device Profiles and illustrative TOML for Device provisioning definition files should be included.
- It must be possible to run the device service against simulated hardware. Documentation illustrating how to do so is also required. The review group should attempt to replicate the scenario described.
- Container packaging must use full confinement (i.e. no use of docker --privileged or snap --devmode). Where access to hardware is required, care must be taken to make exceptions for the specific required hardware and/or system resources, and the means to allow these exceptions should be documented.
- A default listening port will be assigned to the new service. Sample configurations supplied with the service should specify this port.
- The service should comply with the general EdgeX requirements as given in the Contributor's Guide.
...