Hi

I agree that it would be cool to also select resources based on features. But I 
think the access gate is the wrong mechanism: Access Control and Feature 
Selection are different beasts and should not be mixed.

Rather I could imagine backing this into the ResourceResolver itself: before 
returning a Resource it is checked for a feature flag property  (e.g. 
sling:feature ?) and this being checked against the Feature service. If not 
enabled, that resource is „hidden“ and not returned.

WDYT ?

Regards
Felix

—
Felix Meschberger  |  Principal Scientist  |  Adobe



Am 14.11.2013 um 02:21 schrieb Dominik Süß <dominik.su...@gmail.com>:

> Hi Ruben,
> 
> the intention is to disable features that are not should not be globally
> available but might be activated under certain conditions. This reduces the
> need to branch non-production ready features away and merge them in later
> and opens the option to have something like a "Friendly user Test" or
> softlaunch of a feature. Therefore this can be something big or something
> small. I think a solution should be capable of dealing with both. The java
> API would allow to hook in at any granularity level of the application so
> this already fullfills the requirements I'd have. Adding a corresponding
> declarative logic to filter the resourcetree would give the same coarse
> and/or finegrained filtermechanism to the resolutionprocess.
> 
> What still would be missing is controlling updates and not just additions.
> e.g. when a resource should be rendered by a new version of a resourceType
> - in such case it might be an option to extend the searchpath from
> /libs/../myresourcetype, /apps/../myresourcetype by featurespecific
> overlaypaths that would either be searched when a feature is activated or
> hidden if the feature is deactivated. This would require refactoring later
> on but would allow parallel existance of multiple versions of a
> resourceType.
> 
> Best regards,
> Dominik
> 
> 
> 
> 
> On Wed, Nov 13, 2013 at 4:02 PM, Ruben Reusser <r...@headwire.com> wrote:
> 
>> Bertrand, Dominik,
>> 
>> the feature flag may also have an impact on the nodes/properties that you
>> need to render the feature. Being able to handle this in the resource tree
>> directly without having to handle it in component code would be great.
>> However, I am not sure if the intention of the feature flag was more to
>> enable/change little features (code fragment) and not really change big
>> things (leave that to test&target or other products?)
>> 
>> Ruben
>> 
>> 
>> On 11/13/2013 6:32 AM, Dominik Süß wrote:
>> 
>>> Hi Bertrand,
>>> 
>>> the UI of an application based on Sling are often composed of existing
>>> resourceTypes so you cannot just decide in the code to display or not to
>>> display so you have to "annotate"/"flag" the resources and then have some
>>> code deciding if this resource should be rendered or not. For sure you
>>> could add code to each resource to check if it is to be rendered but this
>>> is a lot of repetive code. Another option would be a Servlet filter to
>>> skip
>>> inclusion at that Point. But this all fails in some situations like
>>> whenyou
>>> consume an aggregated json dump and use this on client side. Therefore the
>>> only shared location that all code should act on when looking at the
>>> persistance is the resourcetree, and as already existing API the Access
>>> Gate API seems to be capable of doing exactly what is required - masking
>>> the resourcetree based on custom logic.
>>> 
>>> Best regards
>>> Dominik
>>> 
>>> 
>>> On Wed, Nov 13, 2013 at 12:01 PM, Bertrand Delacretaz <
>>> bdelacre...@apache.org> wrote:
>>> 
>>> Hi Dominik,
>>>> 
>>>> On Tue, Nov 12, 2013 at 5:07 PM, Dominik Süß <dominik.su...@gmail.com>
>>>> wrote:
>>>> 
>>>>> ...as far as I can see the API is just covering the java aspect of
>>>>> 
>>>> this...
>>>> 
>>>> Nothing prevents you from using the FeatureFlags service in scripted
>>>> code.
>>>> 
>>>> ....you could have a gate looking for a marker at a resource
>>>>> which indicates it to be part of a specific feature and therefore
>>>>> 
>>>> disables
>>>> 
>>>>> access to it....
>>>>> 
>>>> Do we need any changes to Sling or to this new API to enable that?
>>>> 
>>>> The problem IMO is that this makes the whole thing less transparent
>>>> than using feature flags in the rendering code. OTOH if people can
>>>> implement it themselves (and add the corresponding info to
>>>> RequestProgressTracker) for transparency, I don't mind.
>>>> 
>>>> -Bertrand
>>>> 
>>>> 
>> 

Reply via email to