2

私はSpring OAuth 2 + Spring Data Neo4jプロジェクトでマルチテナントサポートを実装します。Spring OAuth 2 + SpringデータNeo4jマルチテナント

私はOAuth2認可サーバをいくつかの異なったクライアントで構成して、異なるclientIdを持っています。

また、私は私の春のデータのNeo4jのモデルにベースTenantEntityを追加しました:私の既存のSpringのデータのNeo4jエンティティの

@NodeEntity 
public abstract class TenantEntity extends BaseEntity { 

    private String tenantId; 

    public String getTenantId() { 
     return tenantId; 
    } 

    public void setTenantId(String tenantId) { 
     this.tenantId = tenantId; 
    } 

} 

すべては今このTenantEntityを拡張する必要があります。

今は、このパラメータをサポートするために、すべてのNeo4jクエリを書き直すつもりです。

例えば、現在のクエリの場合:私は、次のように書き換えしようとして

MATCH (d:Decision)<-[:DEFINED_BY]-(c:Criterion) WHERE id(d) = {decisionId} AND NOT (c)<-[:CONTAINS]-(:CriterionGroup) RETURN c

tenantId私はのOAuth2 clientIdを使用して、すべて一緒にそれを格納するつもりのためのターンで
MATCH (d:Decision)<-[:DEFINED_BY]-(c:Criterion) WHERE id(d) = {decisionId} AND d.tenantId = {tenantId} AND c.tenantId = {tenantId} AND NOT (c)<-[:CONTAINS]-(:CriterionGroup) RETURN c 

Neo4jエンティティ。

マルチテナントまたはSpring OAuth2/Dataを実装するための正しいアプローチNeo4jは、この目的のために何か標準を提案することができますか?

答えて

1

現在、Neo4jにはマルチテナントをサポートする機能がないため、特に必要な場合は、実行したとおりに回避する必要があります。あなたのソリューションは合理的に見えます。

また、ライセンスはマシンで行われるため、Dockerなどを使用して複数のNeo4jインスタンスをそれぞれ異なるポートでスピンアップすることもできます。

関連する問題