Open reubenmiller opened 1 month ago
After some investigation, SmartREST 1.0 can't be used by thin-edge.io due to the usage of a certificate based device user (as the MQTT connection is via x509 certificates). The incompatibility arises as SmartREST 1.0 assumes Basic Auth, where as a cert-based device user uses Bearer Auth.
A follow up investigation is being done to see if an option to enable the older username/password style MQTT connection would be feasible to provide an easier upgrade path for existing users of SmartREST 1.0
This ticket is on hold until https://github.com/thin-edge/thin-edge.io/issues/3036 is resolved
Is your feature request related to a problem? Please describe.
Some customers with older Cumulocity IoT agents, have used SmartREST 1. Currently thin-edge.io does not support the SmartREST 1 topics, and therefore can't be used (out-of-the-box) to migrate existing agents to use the local MQTT broker.
Being able to use thin-edge.io with SmartREST 1 enables customers to slowing migrate their existing solutions, and they can still benefit from the out-of-the-box functionality provided by thin-edge.io, and still use any custom functionality provided by their agent (whist not having to worry about the Cumulocity IoT connection).
Though overtime it is still encouraged for users to migrate away from SmartREST 1 to SmartREST 2, however usage of SmartREST 1 should not be a blocker for thin-edge.io adoption.
Describe the solution you'd like
thin-edge.io should support SmartREST 1 topics to enable existing customers to re-use existing agents with thin-edge.io by using both the local MQTT broker (which bridges the Cumulocity IoT topics) and the local c8y proxy (for REST communication).
Requirements:
c8y.smartrest1.templates
where it accepts an array of templates (similar toc8y.smartrest.templates
)Only subscribe to the SmartREST 1 topics, if at least 1 topic is defined. Though refer to the Cumulocity SmartREST 1.0 documentation to validate the exact topics
s/ul/<X-ID>
t/ul/<X-ID>
q/ul/<X-ID>
c/ul/<X-ID>
s/dl/<X-ID>
s/ol/<X-ID>
Describe alternatives you've considered
Additional context