Hi Jason, I would think the ContentLoader could be enhanced to provide more granular import logic than the "overwrite" and "overwriteProperties" directives provide.
For a point of comparison, in a previous (non-sling) project I worked on we had a similar mechanism for importing content into a taxonomy. The solution we ended up with for this kind of problem was to have a mechanism to specify an import sync mode that changed how the new information was interpreted. For example, the import "sync mode" could be set to something like this with a directive (or with a special tag within the content itself): - default - merge the new content into the existing taxonomy overwriting anything existing at the same location - update - merge the new content into the existing taxonomy by overwriting/updating existing content but don't create anything that doesn't already exist - add - merge the new content into the existing taxonomy but don't add or update any items that already exist - sync - same as "default" but remove all nodes from each of the parent nodes if there is no equivalent item in the new content. Regards, Eric On Thu, Dec 6, 2018 at 10:44 AM Jason E Bailey <j...@apache.org> wrote: > We've set up a process to import content into our Sling instance and > we're running into a problem with the ContentLoader. > The use case is that a set of data that is managed in another part of > our company is being provided to us in the form of a JSON object for > loading into our Sling environment. > This works. However, this content changes daily, sometimes properties > will change and sometimes node structure. > We don't want to say "overwrite" because that causes the entire tree > structure to be deleted which is really intensive, however if we > don't say "overwrite" then nodes that are removed from the import > continue to exist. > Effectively what we need is a delta, we want to delete nodes if they > aren't in the import but otherwise leave it alone, the same thing with > properties. > Which, unless I'm missing something, is not a function the > importer supports. Has anyone had to deal with this? Maybe used a > different process? > Thanks > - Jason > > >