[ 
https://issues.apache.org/jira/browse/TINKERPOP-2473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239641#comment-17239641
 ] 

Marc de Lignie commented on TINKERPOP-2473:
-------------------------------------------

Another issue with the application of traversal strategies is that a 
restricting strategy such a ReadOnlyStrategy can simply be removed remotely 
with a withoutStrategies(ReadOnlyStrategy). Although I can imagine cases where 
you would allow this on purpose, it clearly was not the intention of the 
authors because there even is a gremlin-server-modern-readonly.yaml example 
file that suggests that the graph is exposed as readonly. So, I feel there 
should be a list of restricting strategies (currently 
{color:#008000}"ReadOnlyStrategy"{color}, 
{color:#008000}"SubgraphStrategy"{color}, 
{color:#008000}"PartitionStrategy"{color},{color:#008000}"LambdaRestrictionStrategy"{color},
 {color:#008000}"EdgeLabelVerificationStrategy"{color}) that cannot be undone. 
If admins want to expose a graph with Gremlin Server in both the restricted and 
the unrestricted way, they can simply provide two differently named 
GraphTraversalSource instances.

I think this is best resolved as part of this issue (TINKERPOP-2473) and 
implies some changes in the application logic of the traversal strategies. What 
do you think?

The documentation I will push this afternoon as part of TINKERPOP-2389 adds 
some description about the application of traversal strategies (but covers the 
present situation), please feel free to use it for documentation of the present 
issue.

> Allow TraversalStrategy instances to be merged
> ----------------------------------------------
>
>                 Key: TINKERPOP-2473
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2473
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.4.8
>            Reporter: Stephen Mallette
>            Priority: Major
>
> Not sure if this is a great idea but it came up as part of TINKERPOP-2389 
> where there might be a need to assign both a client-side and server-side 
> {{SubgraphStrategy}}. Currently, while not explicit, you can't assign more 
> than one strategy of a particular type using {{withStrategies()}}. This task 
> would make that explicit and provide a direct way for mergeable strategies to 
> be pushed together into one. If we did that it would also simplify 
> {{OptionsStrategy}} usage in {{with()}} step which currently finds an 
> existing one first if present and then adds to it (otherwise creates it new). 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to