Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Cumulocity IoT SmartREST 1.0 topics #3008

Closed
reubenmiller opened this issue Jul 22, 2024 · 2 comments
Closed

Support Cumulocity IoT SmartREST 1.0 topics #3008

reubenmiller opened this issue Jul 22, 2024 · 2 comments
Labels
idea ideas/opportunities/feature requests which need to be further investigated before implementation theme:c8y Theme: Cumulocity related topics
Milestone

Comments

@reubenmiller
Copy link
Contributor

reubenmiller commented Jul 22, 2024

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:

  • Add new tedge configuration item, c8y.smartrest1.templates where it accepts an array of templates (similar to c8y.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

@reubenmiller reubenmiller added idea ideas/opportunities/feature requests which need to be further investigated before implementation theme:c8y Theme: Cumulocity related topics labels Jul 22, 2024
@reubenmiller reubenmiller self-assigned this Jul 22, 2024
@reubenmiller
Copy link
Contributor Author

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

@reubenmiller
Copy link
Contributor Author

This ticket is on hold until #3036 is resolved

@reubenmiller reubenmiller removed their assignment Aug 1, 2024
@reubenmiller reubenmiller added this to the 1.4.0 milestone Nov 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
idea ideas/opportunities/feature requests which need to be further investigated before implementation theme:c8y Theme: Cumulocity related topics
Projects
None yet
Development

No branches or pull requests

1 participant