-
Notifications
You must be signed in to change notification settings - Fork 227
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
feat(azure-iot-mqtt-device): modelID option #809
Conversation
device/core/src/interfaces.ts
Outdated
@@ -129,6 +129,12 @@ export interface DeviceClientOptions extends X509 { | |||
*/ | |||
productInfo?: string; | |||
|
|||
/** | |||
* !!Digital Twin Use Only!! | |||
* String used in MQTT username settting the Digital Twin modelID. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo
device/core/src/interfaces.ts
Outdated
@@ -129,6 +129,12 @@ export interface DeviceClientOptions extends X509 { | |||
*/ | |||
productInfo?: string; | |||
|
|||
/** | |||
* !!Digital Twin Use Only!! | |||
* String used in MQTT username settting the Digital Twin modelID. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
modelId
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well if we're gonna get picky, there are three 't''s in setting
In reply to: 431961220 [](ancestors = 431961220)
@@ -225,6 +227,9 @@ The `reject` method is there for compatibility purposes with other transports bu | |||
**SRS_NODE_DEVICE_MQTT_06_002: [** The authentication providers `setTokenRenewalValues` method shall be invoked with the values provided in the tokenRenewal option. | |||
**]** | |||
|
|||
**SRS_NODE_DEVICE_MQTT_41_014: [** For a Plug and Play Device the modelID should be included as `&digital-twin-model-id=<DEVICE’s MODEL ID>` after the api-version **]** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same...
device/transport/mqtt/src/mqtt.ts
Outdated
@@ -727,14 +732,18 @@ export class Mqtt extends EventEmitter implements DeviceTransport { | |||
clientId = credentials.deviceId; | |||
} | |||
|
|||
/*Codes_SRS_NODE_DEVICE_MQTT_41_015: [If a modelID is provided, the device should use the PnP API String] */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
modelID [](start = 47, length = 7)
Same...
device/transport/mqtt/src/mqtt.ts
Outdated
@@ -727,14 +732,18 @@ export class Mqtt extends EventEmitter implements DeviceTransport { | |||
clientId = credentials.deviceId; | |||
} | |||
|
|||
/*Codes_SRS_NODE_DEVICE_MQTT_41_015: [If a modelID is provided, the device should use the PnP API String] */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
modelID [](start = 47, length = 7)
Same...
@@ -634,6 +634,31 @@ describe('Mqtt', function () { | |||
}); | |||
}); | |||
|
|||
/* Tests_SRS_NODE_DEVICE_MQTT_41_014: [For a Plug and Play Device the modelID should be included as `&digital-twin-model-id=<DEVICE’s MODEL ID>` after the api-version]*/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
modelID [](start = 74, length = 7)
Same...
@@ -634,6 +634,31 @@ describe('Mqtt', function () { | |||
}); | |||
}); | |||
|
|||
/* Tests_SRS_NODE_DEVICE_MQTT_41_014: [For a Plug and Play Device the modelID should be included as `&digital-twin-model-id=<DEVICE’s MODEL ID>` after the api-version]*/ | |||
/* Tests_SRS_NODE_DEVICE_MQTT_41_015: [If a modelID is provided, the device should use the PnP API String] */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
modelID [](start = 48, length = 7)
Same...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* fix(azure-iothub): fix signatue for getTwin, updateTwin, updateModuleTwin to use Twin fix #673 * improvement(provisioning samples): use the results of the registration to create and open device * test(azure-iot-device-mqtt): reformat _mqtt_test.js (#741) * (chore) add issue templates workflow * Delete ISSUE_TEMPLATE.md * Update bug-report.md * fix(azure-iot-mqtt-base): forceReconnect for disconnecting hang in mqtt-base (#770) * release(2020-04-24): bump package versions (#771) Co-authored-by: Azure IoT Client Build <aziotclb@microsoft.com> * refactor: update to mqtt.js v4 (#772) * build: update to mqtt.js v4 * refactor: add debug logs * fix: eslint issue * chore: remove network_e2e directory - no longer used (#775) * refactor: expose connection error in mqtt (#776) * release(2020-05-07): bump package versions (#788) * release(2020-05-07): bump package versions Co-authored-by: Azure IoT Client Build <aziotclb@microsoft.com> * refactor(multipe packages): c2d states no longer using booleans (#797) This moves the logic of checking if C2D is enabled down to the transport level, since it is not necessarily accurate to represent it at the device client level. There is not enough information at that level to make totally accurate judgements of if it is connected or not. * chore(azure-iot-device-amqp): debug logs for c2d (#804) * build: update to mqtt.js v4 * chore: add debug logs * chore(azure-iot-device): updating api version to support twin arrays (#806) * improvement(azure-iot-mqtt-base): maintain knowledge of on the wire publishes (#808) By tracking the on the wire publishes we can reliably complete in case of disconnects or other errors. * feat(azure-iot-mqtt-device): modelID option (#809) This adds the setOption for ModelID, which will enable users to use the existing device client library as a PnP library. To accomodate the lack of support in the existing service API, a switching API call has been added that will use the preview API version if the modelID is set. * release(2020-05-28): bump package versions (#810) Co-authored-by: Azure IoT Client Build <aziotclb@microsoft.com> * Create synctodevops.yml * chore(azure-iot-provisioning-device): update samples to use env var (#816) * Add CodeQL security scanning (#815) Co-authored-by: Anthony V. Ercolano <anthonyvercolano@users.noreply.github.com> * improvement(azure-iot-mqtt-base): add timeouts to publishes that have… (#818) * improvement(azure-iot-mqtt-base): add timeouts to publishes that have not been PUBACKed by the service 744 * update classes and unique identifiers. * chore: create config.yml for issue templates (#823) * chore: create config.yml for issue templates * chore: update technical question for msft q&a * fix: add vanity link for IoT help * chore: update technical question options * fix: add https:// * fix: add https:// * fix: add https:// * fix: add https:// Co-authored-by: Anthony V. Ercolano <anthonyvercolano@users.noreply.github.com> * feat(azure-iot-device): adds emit to connect (#819) 'connect' is emitted whenever the device transport FSM enters the "connected" state for MQTT, and "authenticated" for AMQP. * fix(azure-iot-device): lint error on simple sample (#826) * fix(azure-iot-device): lint error on simple sample * fix(azure-iot-device): add sample linting to the CI * refactor(multiple): update to typescript 3.7.5 move to dist instead of lib parameter checking and suppression (#824) * chore: updating docs to clarify edge support for linux only * refactor(multiple): update to typescript 3.7.5 move to dist etc (#830) * chore: node pnp sample for summer * chore: update prov sample to use env variables (#831) * chore: node pnp sample for summer * refactor(multiple): update to typescript 3.7.5 move to dist vs lib other minor (#833) * chore: node pnp sample for summer * chore: rename digital-twin-model-id to model-id in mqtt (#829) * chore: node pnp sample for summer * chore: node pnp sample for summer * chore: initial addition of pnp simple thermostat sample (#827) * chore: node pnp sample for summer * release(2020-07-06): bump package versions (#838) Co-authored-by: Azure IoT Client Build <aziotclb@microsoft.com> * chore: fixing the sample for feedback (#839) * chore: remove writable property in reported (#842) * chore: some changes * chore: some changes * chore: some changes * Update pnpTemperatureController.js * Updated file upload sample to reflect current SDK changes. (#834) * fix(sample): update sample to use current SDK changes * fix(sample): update to use latest SDK changes, add use strict * fix(sample): update sample to use current SDK changes, fix linting issue * Update upload_to_blob_advanced.js * Update upload_to_blob_advanced.js Co-authored-by: Chandler Lattin <chlattin@microsoft.com> Co-authored-by: Anthony V. Ercolano <anthonyvercolano@users.noreply.github.com> Co-authored-by: Yoseph Maguire <yoseph.maguire@microsoft.com> Co-authored-by: Yoseph Maguire <yoseph.maguire@gmail.com> * chore: align environment variable names * Update pnpTemperatureController.js * chore: removing all the lib folders in repo Co-authored-by: Anthony Ercolano <toercola@microsoft.com> Co-authored-by: Anthony V. Ercolano <anthonyvercolano@users.noreply.github.com> Co-authored-by: Yoseph Maguire <yoseph.maguire@microsoft.com> Co-authored-by: Elena Horton <52430760+elhorton@users.noreply.github.com> Co-authored-by: Azure IoT Client Build <aziotclb@microsoft.com> Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com> Co-authored-by: olivakar <oliva.kar@microsoft.com> Co-authored-by: olivakar <oliva.tanusree@gmail.com> Co-authored-by: Chandler Lattin <chandlerlattin@knights.ucf.edu> Co-authored-by: Chandler Lattin <chlattin@microsoft.com> Co-authored-by: Yoseph Maguire <yoseph.maguire@gmail.com>
* fix(azure-iothub): fix signatue for getTwin, updateTwin, updateModuleTwin to use Twin fix #673 * improvement(provisioning samples): use the results of the registration to create and open device * test(azure-iot-device-mqtt): reformat _mqtt_test.js (#741) * (chore) add issue templates workflow * Delete ISSUE_TEMPLATE.md * Update bug-report.md * fix(azure-iot-mqtt-base): forceReconnect for disconnecting hang in mqtt-base (#770) * release(2020-04-24): bump package versions (#771) Co-authored-by: Azure IoT Client Build <aziotclb@microsoft.com> * refactor: update to mqtt.js v4 (#772) * build: update to mqtt.js v4 * refactor: add debug logs * fix: eslint issue * chore: remove network_e2e directory - no longer used (#775) * refactor: expose connection error in mqtt (#776) * release(2020-05-07): bump package versions (#788) * release(2020-05-07): bump package versions Co-authored-by: Azure IoT Client Build <aziotclb@microsoft.com> * refactor(multipe packages): c2d states no longer using booleans (#797) This moves the logic of checking if C2D is enabled down to the transport level, since it is not necessarily accurate to represent it at the device client level. There is not enough information at that level to make totally accurate judgements of if it is connected or not. * chore(azure-iot-device-amqp): debug logs for c2d (#804) * build: update to mqtt.js v4 * chore: add debug logs * chore(azure-iot-device): updating api version to support twin arrays (#806) * improvement(azure-iot-mqtt-base): maintain knowledge of on the wire publishes (#808) By tracking the on the wire publishes we can reliably complete in case of disconnects or other errors. * feat(azure-iot-mqtt-device): modelID option (#809) This adds the setOption for ModelID, which will enable users to use the existing device client library as a PnP library. To accomodate the lack of support in the existing service API, a switching API call has been added that will use the preview API version if the modelID is set. * release(2020-05-28): bump package versions (#810) Co-authored-by: Azure IoT Client Build <aziotclb@microsoft.com> * Create synctodevops.yml * chore(azure-iot-provisioning-device): update samples to use env var (#816) * Add CodeQL security scanning (#815) Co-authored-by: Anthony V. Ercolano <anthonyvercolano@users.noreply.github.com> * improvement(azure-iot-mqtt-base): add timeouts to publishes that have… (#818) * improvement(azure-iot-mqtt-base): add timeouts to publishes that have not been PUBACKed by the service 744 * update classes and unique identifiers. * chore: create config.yml for issue templates (#823) * chore: create config.yml for issue templates * chore: update technical question for msft q&a * fix: add vanity link for IoT help * chore: update technical question options * fix: add https:// * fix: add https:// * fix: add https:// * fix: add https:// Co-authored-by: Anthony V. Ercolano <anthonyvercolano@users.noreply.github.com> * feat(azure-iot-device): adds emit to connect (#819) 'connect' is emitted whenever the device transport FSM enters the "connected" state for MQTT, and "authenticated" for AMQP. * fix(azure-iot-device): lint error on simple sample (#826) * fix(azure-iot-device): lint error on simple sample * fix(azure-iot-device): add sample linting to the CI * refactor(multiple): update to typescript 3.7.5 move to dist instead of lib parameter checking and suppression (#824) * chore: updating docs to clarify edge support for linux only * refactor(multiple): update to typescript 3.7.5 move to dist etc (#830) * chore: node pnp sample for summer * chore: update prov sample to use env variables (#831) * chore: node pnp sample for summer * refactor(multiple): update to typescript 3.7.5 move to dist vs lib other minor (#833) * chore: node pnp sample for summer * chore: rename digital-twin-model-id to model-id in mqtt (#829) * chore: node pnp sample for summer * chore: node pnp sample for summer * chore: initial addition of pnp simple thermostat sample (#827) * chore: node pnp sample for summer * release(2020-07-06): bump package versions (#838) Co-authored-by: Azure IoT Client Build <aziotclb@microsoft.com> * chore: fixing the sample for feedback (#839) * chore: remove writable property in reported (#842) * chore: some changes * chore: some changes * chore: some changes * Update pnpTemperatureController.js * Updated file upload sample to reflect current SDK changes. (#834) * fix(sample): update sample to use current SDK changes * fix(sample): update to use latest SDK changes, add use strict * fix(sample): update sample to use current SDK changes, fix linting issue * Update upload_to_blob_advanced.js * Update upload_to_blob_advanced.js Co-authored-by: Chandler Lattin <chlattin@microsoft.com> Co-authored-by: Anthony V. Ercolano <anthonyvercolano@users.noreply.github.com> Co-authored-by: Yoseph Maguire <yoseph.maguire@microsoft.com> Co-authored-by: Yoseph Maguire <yoseph.maguire@gmail.com> * chore: align environment variable names * Update pnpTemperatureController.js * chore: removing all the lib folders in repo * chore: removing a few more lib folders * chore: updating twin calls to the pnp api-version * chore: adding modelId object to twin * chore: fixing registry sample * fix(azure-iothub): update vesion and support modelId service side Updated to -pnp-refresh.4. Fixed the sample to print out the modelId. Updated various dependents to the latest branch. Co-authored-by: Yoseph Maguire <yoseph.maguire@microsoft.com> Co-authored-by: Elena Horton <52430760+elhorton@users.noreply.github.com> Co-authored-by: Azure IoT Client Build <aziotclb@microsoft.com> Co-authored-by: Jelani Brandon <jelani.brandon@microsoft.com> Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com> Co-authored-by: olivakar <oliva.kar@microsoft.com> Co-authored-by: olivakar <oliva.tanusree@gmail.com> Co-authored-by: Chandler Lattin <chandlerlattin@knights.ucf.edu> Co-authored-by: Chandler Lattin <chlattin@microsoft.com> Co-authored-by: Yoseph Maguire <yoseph.maguire@gmail.com> Co-authored-by: Jelani Brandon <jelanibrandon@gmail.com>
This adds the setOption for ModelID, which will enable users to use the existing device client library as a PnP library. To accomodate the lack of support in the existing service API, a switching API call has been added that will use the preview API version if the modelID is set.