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

(configuration): Synchronize all Named Shadows for Thing #124

Open
2 tasks
AdamVD opened this issue May 19, 2022 · 4 comments
Open
2 tasks

(configuration): Synchronize all Named Shadows for Thing #124

AdamVD opened this issue May 19, 2022 · 4 comments
Labels
enhancement New feature or request

Comments

@AdamVD
Copy link

AdamVD commented May 19, 2022

Feature Description
A configuration option to synchronize all the Named Shadows for a Thing, so that the Shadow Manager configuration does not need to be updated when new Shadows are created.

Use Case
We manage a lot of our data through Shadows attached to our core devices, and we have some data sets that need to dynamically scale beyond the 8KB size limit (I know it can increase to 30KB with quotas). We enumerate our Shadows when we go beyond the size limit of a single document, so we might start with FooShadow0 but end up with FooShadow1 and FooShadow2 after a while of normal operation. We also regularly add new Shadows to support new devices or capabilities in our application.

It's not trivial to automatically reconfigure the Shadow Manager when we dynamically scale out a set of Shadows at runtime. These new Shadows could be created either in the cloud or on the Greengrass core during operation.

Proposed Solution
The Shadow Manager can periodically check IoT Core for new Shadows that are created in the cloud (list-named-shadows-for-thing) and then begin synchronizing automatically. Similarly, any new local Shadow can be automatically added to the sync process.

An exclude list could be added so that you can choose which Shadows not to sync, although this isn't important in our use case yet. The allNamedShadows (bool) + excludeShadows (list) combination would need to be mutually exclusive with the existing namedShadows list.

  • 👋 I may be able to implement this feature request
  • ⚠️ This feature might incur a breaking change
@MikeDombo MikeDombo added the enhancement New feature or request label May 19, 2022
@MikeDombo
Copy link
Member

@AdamVD,
Thank you for suggesting this feature, we'll consider it and follow up here. Also of course Shadow Manager is open source so if you or anyone else implements it we'd be very happy to review the pull request.

@clogwog
Copy link

clogwog commented May 19, 2022

We do a similar thing with the named shadows config1 config2 etc..
So for the ShadowManager-Config I've created one that adds about 9 of them like:

"synchronize": {
      "coreThing": {
        "classic": false,
        "namedShadows": [
          "config1",
          "config2",
          "config3",
          "config4",
          "config5",
          "config6",
          "config7",
          "config8",
          "config9",
        ]
      },

Even if we don't use all of them.

If it is possible to add wildcards, that would also help us heaps.

@oidebrett
Copy link

I would also like this feature too. Any update on this feature?

@clogwog
Copy link

clogwog commented Aug 23, 2023

We do a similar thing with the named shadows config1 config2 etc..

So for the ShadowManager-Config I've created one that adds about 9 of them like:


"synchronize": {

      "coreThing": {

        "classic": false,

        "namedShadows": [

          "config1",

          "config2",

          "config3",

          "config4",

          "config5",

          "config6",

          "config7",

          "config8",

          "config9",

        ]

      },

Even if we don't use all of them.

If it is possible to add wildcards, that would also help us heaps.

Setting shadow names to sync that don't exist (yet) causes the greengrass.log to fill up with warnings. Which is less than optimal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants