Re: Sling Declarative Dynamic Resources

2021-04-26 Thread Carsten Ziegeler

Hi,

I haven't really thought about this in detail but when the use case came 
up the first thing that came to my mind was to somehow hook into the 
servlet resolution mechanism.


In some way the bundled scripts provide something similar, not exactly 
the same - but maybe it can be built in the same way. But as said, I 
haven't really looked into it and I guess this needs some more thinking :)


Regards
Carsten

Am 27.04.2021 um 00:03 schrieb Andreas Schaefer:

Hi Carsten

Ruben told me that you think that this can be accomplished with a change to the 
Servlets Resolver. I am not sure how that would work as a servlet is driven by 
its resource type , extension etc. This in turn would mean that each child 
entry would need to adhere to that as well.

- Andy


On Apr 22, 2021, at 10:31 PM, Carsten Ziegeler  wrote:

Thanks Ruben,

in my opinion /apps belongs to developers. In our case its immutable for good 
reasons. Drilling a hole into this and allowing non developers contribute to 
/apps, especially in a dynamic fashion circumventing the immutability sounds 
very risky and can result in security problems.

I understand that extra configuration options are added to partially address 
this, but then it comes down to how effective these are and what holes they 
might have.

Now, in general I'm not against a feature like dynamic resources - but making 
something immutable mutable especially for a different audience is too 
dangerous.

Regards
Carsten

Am 22.04.2021 um 18:27 schrieb Ruben Reusser:

Carsten,  see inline
On 4/22/2021 6:55 AM, Carsten Ziegeler wrote:

Am 21.04.2021 um 15:30 schrieb Ruben Reusser:

- for each website that is created we have to create a corresponding /apps 
folder for rendering purposes


I assume the ddr solution is temporary and eventually the information is added 
to /apps directly? In this case I would do that immediately.


we try to live in a composite nodestore world where /apps is not writable - so 
no, we can't write to apps when creating a website

- we also want to give editors a certain control over group names, labels and 
the component variations an editor can pick from when creating a page


That sounds as if that is part of content not stored in /apps?


the default node structure we want to create if a user adds a component to a 
page is currently under apps but we would like to keep it somewhere in /content 
in the future
our big motivation for DDR is to make authoring and maintaining a website less 
dependent on developers and allow for better customization options after the 
initial effort to build a site has been completed.

Carsten


Ruben


--
--
Carsten Ziegeler
Adobe Research Switzerland
cziege...@apache.org




--
--
Carsten Ziegeler
Adobe Research Switzerland
cziege...@apache.org


Re: Sling Declarative Dynamic Resources

2021-04-26 Thread Carsten Ziegeler
Sling does not mandate anything to be mutable or immutable. Products 
build on top of Sling however might do. Ruben has noted that the 
solution he is working on is immutable with respect to /apps and ours 
is, too. That is for production systems - not development systems.


As noted, a mechanism like proposed here (or the superimposing one) 
makes sense to me in general. But in my opinion it creates problems with 
solutions having parts immutable. Again that's of course a decision 
everyone can make for themselves. Still my suggestion for everyone 
having an immutable part in the repository would be to look for a less 
intrusive solution


Regards
Carsten

Am 27.04.2021 um 01:06 schrieb Cris Rockwell:

Where are the docs about making apps completely immutable? Sounds like it
would be huge pain to be a site (customer) developer for a system like
that.


On Fri, Apr 23, 2021, 1:32 AM Carsten Ziegeler  wrote:


Thanks Ruben,

in my opinion /apps belongs to developers. In our case its immutable for
good reasons. Drilling a hole into this and allowing non developers
contribute to /apps, especially in a dynamic fashion circumventing the
immutability sounds very risky and can result in security problems.

I understand that extra configuration options are added to partially
address this, but then it comes down to how effective these are and what
holes they might have.

Now, in general I'm not against a feature like dynamic resources - but
making something immutable mutable especially for a different audience
is too dangerous.

Regards
Carsten

Am 22.04.2021 um 18:27 schrieb Ruben Reusser:

Carsten,  see inline

On 4/22/2021 6:55 AM, Carsten Ziegeler wrote:


Am 21.04.2021 um 15:30 schrieb Ruben Reusser:

- for each website that is created we have to create a corresponding
/apps folder for rendering purposes


I assume the ddr solution is temporary and eventually the information
is added to /apps directly? In this case I would do that immediately.


we try to live in a composite nodestore world where /apps is not
writable - so no, we can't write to apps when creating a website


- we also want to give editors a certain control over group names,
labels and the component variations an editor can pick from when
creating a page


That sounds as if that is part of content not stored in /apps?


the default node structure we want to create if a user adds a component
to a page is currently under apps but we would like to keep it somewhere
in /content in the future

our big motivation for DDR is to make authoring and maintaining a
website less dependent on developers and allow for better customization
options after the initial effort to build a site has been completed.


Carsten


Ruben


--
--
Carsten Ziegeler
Adobe Research Switzerland
cziege...@apache.org





--
--
Carsten Ziegeler
Adobe Research Switzerland
cziege...@apache.org


Re: Sling Declarative Dynamic Resources

2021-04-26 Thread Cris Rockwell
Where are the docs about making apps completely immutable? Sounds like it
would be huge pain to be a site (customer) developer for a system like
that.


On Fri, Apr 23, 2021, 1:32 AM Carsten Ziegeler  wrote:

> Thanks Ruben,
>
> in my opinion /apps belongs to developers. In our case its immutable for
> good reasons. Drilling a hole into this and allowing non developers
> contribute to /apps, especially in a dynamic fashion circumventing the
> immutability sounds very risky and can result in security problems.
>
> I understand that extra configuration options are added to partially
> address this, but then it comes down to how effective these are and what
> holes they might have.
>
> Now, in general I'm not against a feature like dynamic resources - but
> making something immutable mutable especially for a different audience
> is too dangerous.
>
> Regards
> Carsten
>
> Am 22.04.2021 um 18:27 schrieb Ruben Reusser:
> > Carsten,  see inline
> >
> > On 4/22/2021 6:55 AM, Carsten Ziegeler wrote:
> >
> >> Am 21.04.2021 um 15:30 schrieb Ruben Reusser:
> >>> - for each website that is created we have to create a corresponding
> >>> /apps folder for rendering purposes
> >>
> >> I assume the ddr solution is temporary and eventually the information
> >> is added to /apps directly? In this case I would do that immediately.
> >>
> > we try to live in a composite nodestore world where /apps is not
> > writable - so no, we can't write to apps when creating a website
> >
> >>> - we also want to give editors a certain control over group names,
> >>> labels and the component variations an editor can pick from when
> >>> creating a page
> >>>
> >> That sounds as if that is part of content not stored in /apps?
> >>
> > the default node structure we want to create if a user adds a component
> > to a page is currently under apps but we would like to keep it somewhere
> > in /content in the future
> >
> > our big motivation for DDR is to make authoring and maintaining a
> > website less dependent on developers and allow for better customization
> > options after the initial effort to build a site has been completed.
> >
> >> Carsten
> >>
> > Ruben
>
> --
> --
> Carsten Ziegeler
> Adobe Research Switzerland
> cziege...@apache.org
>


Re: Sling Declarative Dynamic Resources

2021-04-26 Thread Andreas Schaefer
Hi Carsten

Ruben told me that you think that this can be accomplished with a change to the 
Servlets Resolver. I am not sure how that would work as a servlet is driven by 
its resource type , extension etc. This in turn would mean that each child 
entry would need to adhere to that as well.

- Andy

> On Apr 22, 2021, at 10:31 PM, Carsten Ziegeler  wrote:
> 
> Thanks Ruben,
> 
> in my opinion /apps belongs to developers. In our case its immutable for good 
> reasons. Drilling a hole into this and allowing non developers contribute to 
> /apps, especially in a dynamic fashion circumventing the immutability sounds 
> very risky and can result in security problems.
> 
> I understand that extra configuration options are added to partially address 
> this, but then it comes down to how effective these are and what holes they 
> might have.
> 
> Now, in general I'm not against a feature like dynamic resources - but making 
> something immutable mutable especially for a different audience is too 
> dangerous.
> 
> Regards
> Carsten
> 
> Am 22.04.2021 um 18:27 schrieb Ruben Reusser:
>> Carsten,  see inline
>> On 4/22/2021 6:55 AM, Carsten Ziegeler wrote:
>>> Am 21.04.2021 um 15:30 schrieb Ruben Reusser:
 - for each website that is created we have to create a corresponding /apps 
 folder for rendering purposes
>>> 
>>> I assume the ddr solution is temporary and eventually the information is 
>>> added to /apps directly? In this case I would do that immediately.
>>> 
>> we try to live in a composite nodestore world where /apps is not writable - 
>> so no, we can't write to apps when creating a website
 - we also want to give editors a certain control over group names, labels 
 and the component variations an editor can pick from when creating a page
 
>>> That sounds as if that is part of content not stored in /apps?
>>> 
>> the default node structure we want to create if a user adds a component to a 
>> page is currently under apps but we would like to keep it somewhere in 
>> /content in the future
>> our big motivation for DDR is to make authoring and maintaining a website 
>> less dependent on developers and allow for better customization options 
>> after the initial effort to build a site has been completed.
>>> Carsten
>>> 
>> Ruben
> 
> -- 
> --
> Carsten Ziegeler
> Adobe Research Switzerland
> cziege...@apache.org



Re: Sling Declarative Dynamic Resources

2021-04-23 Thread Ruben Reusser

Carsten,

I think I understand your security concern - do you see another way to 
solve this in that case?


Ruben

On 4/22/2021 10:31 PM, Carsten Ziegeler wrote:

Thanks Ruben,

in my opinion /apps belongs to developers. In our case its immutable 
for good reasons. Drilling a hole into this and allowing non 
developers contribute to /apps, especially in a dynamic fashion 
circumventing the immutability sounds very risky and can result in 
security problems.


I understand that extra configuration options are added to partially 
address this, but then it comes down to how effective these are and 
what holes they might have.


Now, in general I'm not against a feature like dynamic resources - but 
making something immutable mutable especially for a different audience 
is too dangerous.


Regards
Carsten



Re: Sling Declarative Dynamic Resources

2021-04-22 Thread Carsten Ziegeler

Thanks Ruben,

in my opinion /apps belongs to developers. In our case its immutable for 
good reasons. Drilling a hole into this and allowing non developers 
contribute to /apps, especially in a dynamic fashion circumventing the 
immutability sounds very risky and can result in security problems.


I understand that extra configuration options are added to partially 
address this, but then it comes down to how effective these are and what 
holes they might have.


Now, in general I'm not against a feature like dynamic resources - but 
making something immutable mutable especially for a different audience 
is too dangerous.


Regards
Carsten

Am 22.04.2021 um 18:27 schrieb Ruben Reusser:

Carsten,  see inline

On 4/22/2021 6:55 AM, Carsten Ziegeler wrote:


Am 21.04.2021 um 15:30 schrieb Ruben Reusser:
- for each website that is created we have to create a corresponding 
/apps folder for rendering purposes


I assume the ddr solution is temporary and eventually the information 
is added to /apps directly? In this case I would do that immediately.


we try to live in a composite nodestore world where /apps is not 
writable - so no, we can't write to apps when creating a website


- we also want to give editors a certain control over group names, 
labels and the component variations an editor can pick from when 
creating a page



That sounds as if that is part of content not stored in /apps?

the default node structure we want to create if a user adds a component 
to a page is currently under apps but we would like to keep it somewhere 
in /content in the future


our big motivation for DDR is to make authoring and maintaining a 
website less dependent on developers and allow for better customization 
options after the initial effort to build a site has been completed.



Carsten


Ruben


--
--
Carsten Ziegeler
Adobe Research Switzerland
cziege...@apache.org


Re: Sling Declarative Dynamic Resources

2021-04-22 Thread Ruben Reusser

Carsten,  see inline

On 4/22/2021 6:55 AM, Carsten Ziegeler wrote:


Am 21.04.2021 um 15:30 schrieb Ruben Reusser:
- for each website that is created we have to create a corresponding 
/apps folder for rendering purposes


I assume the ddr solution is temporary and eventually the information 
is added to /apps directly? In this case I would do that immediately.


we try to live in a composite nodestore world where /apps is not 
writable - so no, we can't write to apps when creating a website


- we also want to give editors a certain control over group names, 
labels and the component variations an editor can pick from when 
creating a page



That sounds as if that is part of content not stored in /apps?

the default node structure we want to create if a user adds a component 
to a page is currently under apps but we would like to keep it somewhere 
in /content in the future


our big motivation for DDR is to make authoring and maintaining a 
website less dependent on developers and allow for better customization 
options after the initial effort to build a site has been completed.



Carsten


Ruben


Re: Sling Declarative Dynamic Resources

2021-04-22 Thread Carsten Ziegeler

Am 21.04.2021 um 15:30 schrieb Ruben Reusser:

Bertrand, Carsten,

On 4/20/2021 10:57 PM, Carsten Ziegeler wrote:
I totally agree that we should try to avoid overlapping solutions and 
as mentioned superimposing and ddr sound pretty similar.


I understand the use cases on a higher level. However - similar to 
Bertrand - I'm a little bit worried. The readme for ddr talks about 
circumventing an immutable repository. If its possible to basically 
make immutable parts mutable, then this is entering dangerous territory.


I understand your concern - that is one of the reasons why we made sure 
we allow blocking of resource types in ddr.


we tried to outline our usecase we need to solve:

- for each website that is created we have to create a corresponding 
/apps folder for rendering purposes


I assume the ddr solution is temporary and eventually the information is 
added to /apps directly? In this case I would do that immediately.


- we also want to give editors a certain control over group names, 
labels and the component variations an editor can pick from when 
creating a page



That sounds as if that is part of content not stored in /apps?

Carsten

--
Carsten Ziegeler
Adobe Research Switzerland
cziege...@apache.org


Re: Sling Declarative Dynamic Resources

2021-04-21 Thread Ruben Reusser

Dan,

I am in favor of adding the features from ddr to sling-superimposing - 
is that ok for others too?


Ruben

On 4/20/2021 4:14 PM, Daniel Klco wrote:

IMO the biggest difference is how this defines the root of the dynamic
resources, e.g. via creating a resource at that path or providing a
configuration with the source and target. This alone is a major advantage
as it means that ddr configurations can be defined at runtime with a
composite store.

The problem I see here is that we are trying to solve the same problem
multiple ways.

My take on the problem is:

As a developer or superuser, I want to be able to present a virtual tree of
resources generated from a tree of resources and a configuration tree.

Resource merger solves this problem by anchoring a root and then defining
source paths which can be overlayed and configured in order. This works
well in the case where you have only two trees and you want to present a
merged copy of these two trees, but does not work for arbitrary anchor
points.

Superimposing supports creating arbitrary roots but these roots can only be
tied to one source. It also only allows overriding the overlayed resouces
by using a lower level api (such as JCR) because the sling post servlet
will update the source resources.

Generally, I think it's better to have fewer ways of doing the same thing,
do it makes sense to consolidate if possible. Given that resouces merger is
widely used, I can't see how it would be worth the effort to regression
check potential breaking issues. However, given that SuperImposing has not
been significantly updated in years, I would recommend that we:

1. Update SuperImposing to work on Java 11 / OSGi 6 / Sling 12
2. Update SuperImposing to support defining virtual trees by source and
source+target and other DDR features
3. Define a feature model to install the bundle and create an oak index for
the mixin
4. Release this as the 1.0 version of SuperImposing

I've already taken a run at updating SuperImposing and am ~75% there.

What do others think?

-Dan

On Tue, Apr 20, 2021, 5:34 PM Andreas Schaefer 
wrote:


Here is a short recap after trying to compare Superimposing Resource (SIR)
and the Declarative Dynamice Resource (DDR). They are similar in some
respect and different in others:

Feature SIR DDR

Resource Resolver type  Admin RRService RR
Linking fromTarget  Source
Mixin   Supported   Not
Supported
Resource ChangesSupported   Supported
Property ChangesNot Supported   Supported
Configure Parent by
1st Level Child Supported   Not Supported
OverlaysSupported
  Not Supported
2nd Level Redirection   Not Supported   Supported
Filtering (Security)Not Supported   Supported
Java 11 Not Supported   Supported
Sling 12Not Supported
  Supported

Cheers - Andy


On Apr 20, 2021, at 6:13 AM, Stefan Seifert 

wrote:

hello ruben.

use case sounds a bit similar to

https://github.com/apache/sling-org-apache-sling-superimposing (a bit

outdated)

and
https://github.com/apache/sling-org-apache-sling-resourcemerger

can you differentiate what DDR does differently?

stefan


-Original Message-
From: Ruben Reusser 
Sent: Tuesday, April 20, 2021 1:54 PM
To: dev@sling.apache.org
Subject: Re: Sling Declarative Dynamic Resources

totally forgot to add the link to the code base - sorry



https://github.com/apache/sling-whiteboard/tree/master/org.apache.sling.ddr

On 4/19/2021 10:29 AM, Ruben Reusser wrote:

dear sling community

Andreas has been working to create a way to dynamically create
component proxies in Sling based on a configuration. In peregrine-cms
we are planning to use this approach when a new tenant (a new website)
is created by a user. It allows us to proxy the base components into a
new /apps folder for the website. A super user for the site can then
potentially change the title/group of a component and the default
structure that is used when adding a component to a page.

We hope this component may be useful to other sling based content
management systems as well. We'd like to ask to move this module out
of the whiteboard - but of course we welcome any
comments/concerns/things we should consider to make sure everybody can
benefit from this module.

looking forward to your comments!

Ruben




Re: Sling Declarative Dynamic Resources

2021-04-21 Thread Ruben Reusser

Bertrand, Carsten,

On 4/20/2021 10:57 PM, Carsten Ziegeler wrote:
I totally agree that we should try to avoid overlapping solutions and 
as mentioned superimposing and ddr sound pretty similar.


I understand the use cases on a higher level. However - similar to 
Bertrand - I'm a little bit worried. The readme for ddr talks about 
circumventing an immutable repository. If its possible to basically 
make immutable parts mutable, then this is entering dangerous territory.


I understand your concern - that is one of the reasons why we made sure 
we allow blocking of resource types in ddr.


we tried to outline our usecase we need to solve:

- for each website that is created we have to create a corresponding 
/apps folder for rendering purposes
- we also want to give editors a certain control over group names, 
labels and the component variations an editor can pick from when 
creating a page


would love to hear if there is a better alternative for this


Regards
Carsten





Re: Sling Declarative Dynamic Resources

2021-04-20 Thread Carsten Ziegeler
I totally agree that we should try to avoid overlapping solutions and as 
mentioned superimposing and ddr sound pretty similar.


I understand the use cases on a higher level. However - similar to 
Bertrand - I'm a little bit worried. The readme for ddr talks about 
circumventing an immutable repository. If its possible to basically make 
immutable parts mutable, then this is entering dangerous territory.


Regards
Carsten


Am 21.04.2021 um 01:14 schrieb Daniel Klco:

IMO the biggest difference is how this defines the root of the dynamic
resources, e.g. via creating a resource at that path or providing a
configuration with the source and target. This alone is a major advantage
as it means that ddr configurations can be defined at runtime with a
composite store.

The problem I see here is that we are trying to solve the same problem
multiple ways.

My take on the problem is:

As a developer or superuser, I want to be able to present a virtual tree of
resources generated from a tree of resources and a configuration tree.

Resource merger solves this problem by anchoring a root and then defining
source paths which can be overlayed and configured in order. This works
well in the case where you have only two trees and you want to present a
merged copy of these two trees, but does not work for arbitrary anchor
points.

Superimposing supports creating arbitrary roots but these roots can only be
tied to one source. It also only allows overriding the overlayed resouces
by using a lower level api (such as JCR) because the sling post servlet
will update the source resources.

Generally, I think it's better to have fewer ways of doing the same thing,
do it makes sense to consolidate if possible. Given that resouces merger is
widely used, I can't see how it would be worth the effort to regression
check potential breaking issues. However, given that SuperImposing has not
been significantly updated in years, I would recommend that we:

1. Update SuperImposing to work on Java 11 / OSGi 6 / Sling 12
2. Update SuperImposing to support defining virtual trees by source and
source+target and other DDR features
3. Define a feature model to install the bundle and create an oak index for
the mixin
4. Release this as the 1.0 version of SuperImposing

I've already taken a run at updating SuperImposing and am ~75% there.

What do others think?

-Dan

On Tue, Apr 20, 2021, 5:34 PM Andreas Schaefer 
wrote:


Here is a short recap after trying to compare Superimposing Resource (SIR)
and the Declarative Dynamice Resource (DDR). They are similar in some
respect and different in others:

Feature SIR DDR

Resource Resolver type  Admin RRService RR
Linking fromTarget  Source
Mixin   Supported   Not
Supported
Resource ChangesSupported   Supported
Property ChangesNot Supported   Supported
Configure Parent by
1st Level Child Supported   Not Supported
OverlaysSupported
  Not Supported
2nd Level Redirection   Not Supported   Supported
Filtering (Security)Not Supported   Supported
Java 11 Not Supported   Supported
Sling 12Not Supported
  Supported

Cheers - Andy


On Apr 20, 2021, at 6:13 AM, Stefan Seifert 

wrote:


hello ruben.

use case sounds a bit similar to

https://github.com/apache/sling-org-apache-sling-superimposing (a bit

outdated)

and
https://github.com/apache/sling-org-apache-sling-resourcemerger

can you differentiate what DDR does differently?

stefan


-Original Message-
From: Ruben Reusser 
Sent: Tuesday, April 20, 2021 1:54 PM
To: dev@sling.apache.org
Subject: Re: Sling Declarative Dynamic Resources

totally forgot to add the link to the code base - sorry



https://github.com/apache/sling-whiteboard/tree/master/org.apache.sling.ddr


On 4/19/2021 10:29 AM, Ruben Reusser wrote:

dear sling community

Andreas has been working to create a way to dynamically create
component proxies in Sling based on a configuration. In peregrine-cms
we are planning to use this approach when a new tenant (a new website)
is created by a user. It allows us to proxy the base components into a
new /apps folder for the website. A super user for the site can then
potentially change the title/group of a component and the default
structure that is used when adding a component to a page.

We hope this component may be useful to other sling based content
management systems as well. We'd like to ask to move this module out
of the whiteboard - but of course we welcome any
comments/concerns/things we should consider to make sure everybody can
benefit from this module.

looking forward to your comments!

Ruben

Re: Sling Declarative Dynamic Resources

2021-04-20 Thread Daniel Klco
IMO the biggest difference is how this defines the root of the dynamic
resources, e.g. via creating a resource at that path or providing a
configuration with the source and target. This alone is a major advantage
as it means that ddr configurations can be defined at runtime with a
composite store.

The problem I see here is that we are trying to solve the same problem
multiple ways.

My take on the problem is:

As a developer or superuser, I want to be able to present a virtual tree of
resources generated from a tree of resources and a configuration tree.

Resource merger solves this problem by anchoring a root and then defining
source paths which can be overlayed and configured in order. This works
well in the case where you have only two trees and you want to present a
merged copy of these two trees, but does not work for arbitrary anchor
points.

Superimposing supports creating arbitrary roots but these roots can only be
tied to one source. It also only allows overriding the overlayed resouces
by using a lower level api (such as JCR) because the sling post servlet
will update the source resources.

Generally, I think it's better to have fewer ways of doing the same thing,
do it makes sense to consolidate if possible. Given that resouces merger is
widely used, I can't see how it would be worth the effort to regression
check potential breaking issues. However, given that SuperImposing has not
been significantly updated in years, I would recommend that we:

1. Update SuperImposing to work on Java 11 / OSGi 6 / Sling 12
2. Update SuperImposing to support defining virtual trees by source and
source+target and other DDR features
3. Define a feature model to install the bundle and create an oak index for
the mixin
4. Release this as the 1.0 version of SuperImposing

I've already taken a run at updating SuperImposing and am ~75% there.

What do others think?

-Dan

On Tue, Apr 20, 2021, 5:34 PM Andreas Schaefer 
wrote:

> Here is a short recap after trying to compare Superimposing Resource (SIR)
> and the Declarative Dynamice Resource (DDR). They are similar in some
> respect and different in others:
>
> Feature SIR DDR
>
> Resource Resolver type  Admin RRService RR
> Linking fromTarget  Source
> Mixin   Supported   Not
> Supported
> Resource ChangesSupported   Supported
> Property ChangesNot Supported   Supported
> Configure Parent by
> 1st Level Child Supported   Not Supported
> OverlaysSupported
>  Not Supported
> 2nd Level Redirection   Not Supported   Supported
> Filtering (Security)Not Supported   Supported
> Java 11 Not Supported   Supported
> Sling 12Not Supported
>  Supported
>
> Cheers - Andy
>
> > On Apr 20, 2021, at 6:13 AM, Stefan Seifert 
> > 
> wrote:
> >
> > hello ruben.
> >
> > use case sounds a bit similar to
> >
> > https://github.com/apache/sling-org-apache-sling-superimposing (a bit
> outdated)
> > and
> > https://github.com/apache/sling-org-apache-sling-resourcemerger
> >
> > can you differentiate what DDR does differently?
> >
> > stefan
> >
> >> -----Original Message-
> >> From: Ruben Reusser 
> >> Sent: Tuesday, April 20, 2021 1:54 PM
> >> To: dev@sling.apache.org
> >> Subject: Re: Sling Declarative Dynamic Resources
> >>
> >> totally forgot to add the link to the code base - sorry
> >>
> >>
> https://github.com/apache/sling-whiteboard/tree/master/org.apache.sling.ddr
> >>
> >> On 4/19/2021 10:29 AM, Ruben Reusser wrote:
> >>> dear sling community
> >>>
> >>> Andreas has been working to create a way to dynamically create
> >>> component proxies in Sling based on a configuration. In peregrine-cms
> >>> we are planning to use this approach when a new tenant (a new website)
> >>> is created by a user. It allows us to proxy the base components into a
> >>> new /apps folder for the website. A super user for the site can then
> >>> potentially change the title/group of a component and the default
> >>> structure that is used when adding a component to a page.
> >>>
> >>> We hope this component may be useful to other sling based content
> >>> management systems as well. We'd like to ask to move this module out
> >>> of the whiteboard - but of course we welcome any
> >>> comments/concerns/things we should consider to make sure everybody can
> >>> benefit from this module.
> >>>
> >>> looking forward to your comments!
> >>>
> >>> Ruben
> >
>
>


Re: Sling Declarative Dynamic Resources

2021-04-20 Thread Andreas Schaefer
Here is a short recap after trying to compare Superimposing Resource (SIR) and 
the Declarative Dynamice Resource (DDR). They are similar in some respect and 
different in others:

Feature SIR DDR

Resource Resolver type  Admin RRService RR
Linking fromTarget  Source
Mixin   Supported   Not Supported
Resource ChangesSupported   Supported
Property ChangesNot Supported   Supported
Configure Parent by
1st Level Child Supported   Not Supported
OverlaysSupported   Not 
Supported
2nd Level Redirection   Not Supported   Supported
Filtering (Security)Not Supported   Supported
Java 11 Not Supported   Supported
Sling 12Not Supported   
Supported

Cheers - Andy

> On Apr 20, 2021, at 6:13 AM, Stefan Seifert 
>  wrote:
> 
> hello ruben.
> 
> use case sounds a bit similar to
> 
> https://github.com/apache/sling-org-apache-sling-superimposing (a bit 
> outdated)
> and
> https://github.com/apache/sling-org-apache-sling-resourcemerger
> 
> can you differentiate what DDR does differently?
> 
> stefan
> 
>> -Original Message-
>> From: Ruben Reusser 
>> Sent: Tuesday, April 20, 2021 1:54 PM
>> To: dev@sling.apache.org
>> Subject: Re: Sling Declarative Dynamic Resources
>> 
>> totally forgot to add the link to the code base - sorry
>> 
>> https://github.com/apache/sling-whiteboard/tree/master/org.apache.sling.ddr
>> 
>> On 4/19/2021 10:29 AM, Ruben Reusser wrote:
>>> dear sling community
>>> 
>>> Andreas has been working to create a way to dynamically create
>>> component proxies in Sling based on a configuration. In peregrine-cms
>>> we are planning to use this approach when a new tenant (a new website)
>>> is created by a user. It allows us to proxy the base components into a
>>> new /apps folder for the website. A super user for the site can then
>>> potentially change the title/group of a component and the default
>>> structure that is used when adding a component to a page.
>>> 
>>> We hope this component may be useful to other sling based content
>>> management systems as well. We'd like to ask to move this module out
>>> of the whiteboard - but of course we welcome any
>>> comments/concerns/things we should consider to make sure everybody can
>>> benefit from this module.
>>> 
>>> looking forward to your comments!
>>> 
>>> Ruben
> 



Re: Sling Declarative Dynamic Resources

2021-04-20 Thread Bertrand Delacretaz
On Tue, Apr 20, 2021 at 3:30 PM Ruben Reusser  wrote:
> ... sling-org-apache-sling-superimposing may in fact provide almost the same
> functionality we are looking for and is definitely worth a try from our
> side!...

I haven't looked at that or DDR in detail but
overlaying/shadowing/masking things makes all sorts of alarms go on in
my little brain, in terms of the potential for making troubleshooting
and understanding a Sling-based system very complicated.

Please make sure these things are *very* transparent, in terms of
logging, tracing, maybe even adding synthetic Resource properties
which help explain what's going on, to make troubleshooting at least
possible and ideally easy.

-Bertrand


Re: Sling Declarative Dynamic Resources

2021-04-20 Thread Ruben Reusser

Stefan, thanks for the pointers

dynamic declarative resources is I think something between the 2 
solutions you pointed out - its meant to be a simple overlay of nodes in 
/apps using a configuration in /conf ro support immutable /apps trees


sling-org-apache-sling-superimposing may in fact provide almost the same 
functionality we are looking for and is definitely worth a try from our 
side!


thanks

Ruben

On 4/20/2021 6:13 AM, Stefan Seifert wrote:

hello ruben.

use case sounds a bit similar to

https://github.com/apache/sling-org-apache-sling-superimposing (a bit outdated)
and
https://github.com/apache/sling-org-apache-sling-resourcemerger

can you differentiate what DDR does differently?

stefan


-Original Message-
From: Ruben Reusser 
Sent: Tuesday, April 20, 2021 1:54 PM
To: dev@sling.apache.org
Subject: Re: Sling Declarative Dynamic Resources

totally forgot to add the link to the code base - sorry

https://github.com/apache/sling-whiteboard/tree/master/org.apache.sling.ddr

On 4/19/2021 10:29 AM, Ruben Reusser wrote:

dear sling community

Andreas has been working to create a way to dynamically create
component proxies in Sling based on a configuration. In peregrine-cms
we are planning to use this approach when a new tenant (a new website)
is created by a user. It allows us to proxy the base components into a
new /apps folder for the website. A super user for the site can then
potentially change the title/group of a component and the default
structure that is used when adding a component to a page.

We hope this component may be useful to other sling based content
management systems as well. We'd like to ask to move this module out
of the whiteboard - but of course we welcome any
comments/concerns/things we should consider to make sure everybody can
benefit from this module.

looking forward to your comments!

Ruben


Re: Sling Declarative Dynamic Resources

2021-04-20 Thread Daniel Klco
Ruben,

IMO it's a really interesting concept. A few thoughts:

   - I'm not a huge fan of the node type sling:DDR, would
   sling:dynamicResource work? I feel like it's more descriptive
   - Your node definition has sling:DDR extend sling:Folder, rather than
   extending this specific type, would it make sense to make this a mixin?
   - Should there be an Oak Index associated with this to optimize initial
   startup performance?
   - It would be nice as well if there were a mbean / osgi console or
   similar for diagnosing issues


On Tue, Apr 20, 2021 at 7:54 AM Ruben Reusser  wrote:

> totally forgot to add the link to the code base - sorry
>
> https://github.com/apache/sling-whiteboard/tree/master/org.apache.sling.ddr
>
> On 4/19/2021 10:29 AM, Ruben Reusser wrote:
> > dear sling community
> >
> > Andreas has been working to create a way to dynamically create
> > component proxies in Sling based on a configuration. In peregrine-cms
> > we are planning to use this approach when a new tenant (a new website)
> > is created by a user. It allows us to proxy the base components into a
> > new /apps folder for the website. A super user for the site can then
> > potentially change the title/group of a component and the default
> > structure that is used when adding a component to a page.
> >
> > We hope this component may be useful to other sling based content
> > management systems as well. We'd like to ask to move this module out
> > of the whiteboard - but of course we welcome any
> > comments/concerns/things we should consider to make sure everybody can
> > benefit from this module.
> >
> > looking forward to your comments!
> >
> > Ruben
> >
> >
>


RE: Sling Declarative Dynamic Resources

2021-04-20 Thread Stefan Seifert
hello ruben.

use case sounds a bit similar to

https://github.com/apache/sling-org-apache-sling-superimposing (a bit outdated)
and
https://github.com/apache/sling-org-apache-sling-resourcemerger

can you differentiate what DDR does differently?

stefan

>-Original Message-
>From: Ruben Reusser 
>Sent: Tuesday, April 20, 2021 1:54 PM
>To: dev@sling.apache.org
>Subject: Re: Sling Declarative Dynamic Resources
>
>totally forgot to add the link to the code base - sorry
>
>https://github.com/apache/sling-whiteboard/tree/master/org.apache.sling.ddr
>
>On 4/19/2021 10:29 AM, Ruben Reusser wrote:
>> dear sling community
>>
>> Andreas has been working to create a way to dynamically create
>> component proxies in Sling based on a configuration. In peregrine-cms
>> we are planning to use this approach when a new tenant (a new website)
>> is created by a user. It allows us to proxy the base components into a
>> new /apps folder for the website. A super user for the site can then
>> potentially change the title/group of a component and the default
>> structure that is used when adding a component to a page.
>>
>> We hope this component may be useful to other sling based content
>> management systems as well. We'd like to ask to move this module out
>> of the whiteboard - but of course we welcome any
>> comments/concerns/things we should consider to make sure everybody can
>> benefit from this module.
>>
>> looking forward to your comments!
>>
>> Ruben



Re: Sling Declarative Dynamic Resources

2021-04-20 Thread Ruben Reusser

totally forgot to add the link to the code base - sorry

https://github.com/apache/sling-whiteboard/tree/master/org.apache.sling.ddr

On 4/19/2021 10:29 AM, Ruben Reusser wrote:

dear sling community

Andreas has been working to create a way to dynamically create 
component proxies in Sling based on a configuration. In peregrine-cms 
we are planning to use this approach when a new tenant (a new website) 
is created by a user. It allows us to proxy the base components into a 
new /apps folder for the website. A super user for the site can then 
potentially change the title/group of a component and the default 
structure that is used when adding a component to a page.


We hope this component may be useful to other sling based content 
management systems as well. We'd like to ask to move this module out 
of the whiteboard - but of course we welcome any 
comments/concerns/things we should consider to make sure everybody can 
benefit from this module.


looking forward to your comments!

Ruben




Sling Declarative Dynamic Resources

2021-04-19 Thread Ruben Reusser

dear sling community

Andreas has been working to create a way to dynamically create component 
proxies in Sling based on a configuration. In peregrine-cms we are 
planning to use this approach when a new tenant (a new website) is 
created by a user. It allows us to proxy the base components into a new 
/apps folder for the website. A super user for the site can then 
potentially change the title/group of a component and the default 
structure that is used when adding a component to a page.


We hope this component may be useful to other sling based content 
management systems as well. We'd like to ask to move this module out of 
the whiteboard - but of course we welcome any comments/concerns/things 
we should consider to make sure everybody can benefit from this module.


looking forward to your comments!

Ruben