ruvnet / ruvnet/RuVector

G3: No native multi-tenant scoping — group_id must be property-filtered

Open
#668 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
4.5k
Forks
603
Avg merge
23h 32m
Merged PRs (30d)
59

Description

G3: No native multi-tenant scoping — group_id must be property-filtered

Gap Description

The crate provides no native tenant-scoped graph. All filtering must be done adapter-side on every query.

Evidence
  • group_id must be stored as a node property.
  • Every read must filter WHERE (n.group_id = ?).
  • Cypher queries have no WHERE clause support — no property filter in Cypher.

Use Case (Allura's governed memory)

Allura enforces tenant isolation at schema level. Every memory belongs to a group_id. Cross-tenant reads are security violations.

Proposed Fixes

Option A — Document and enforce adapter-side filtering (short term)

Current enforcement in ruvector-crate-adapter.ts filters every result.

Option B — Recommend per-tenant GraphDatabase.open (medium term)

Each tenant instantiates their own GraphDatabase.open(path).

Option C — Add native graph/workspace scoping (preferred long term)

Add create_workspace, select_workspace, delete_workspace.

Can Allura contribute a PR?

Yes — Allura can add workspace API to ruvector-graph crate.


Author: Brooks (Allura architect), Date: 2026-07-12

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with ruvector-crate-adapter.ts, where current adapter-side filtering is described, and review GraphDatabase.open and the stated Cypher query limitations. Compare the three proposed scoping approaches; done requires a decided tenant-isolation design and an agreed implementation scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, typescript
Domain
databases, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.