Skip to main content

Multitenancy & Project Isolation

{projectId} is the data boundary for a RushDB project. RushDB resolves it from authenticated request context and applies it to graph operations, project metadata, usage events, and optional BYOC database connections.

Graph Data Is Scoped by projectId​

Every RushDB record carries an internal project identifier. Generated reads and writes include that identifier as a mandatory bound parameter:

MATCH (record:__RUSHDB__LABEL__RECORD__ {
__RUSHDB__KEY__PROJECT__ID__: $projectId
})

RushDB property-definition nodes are scoped too. Their uniqueness constraint includes projectId, so two projects can independently define a property named email without sharing the same metadata node.

Authentication Establishes the Boundary​

API tokens are project-scoped. RushDB validates the presented token, loads its project assignment from SQL metadata, and injects that project ID into the request context used by graph queries.

The dashboard passes x-project-id while navigating project-level screens. MCP OAuth flows carry project_id context when selecting a project. These values are still checked against authenticated access; applications should never treat an arbitrary client-supplied project ID as authorization.

Logical and Physical Isolation​

The default shared-cloud connection uses logical isolation: projects can share a Neo4j database while mandatory projectId predicates prevent cross-project reads and writes.

When you need a dedicated graph boundary, use BYOC to connect a project to your own Neo4j or Aura instance. For the strongest physical separation in self-hosted environments, run separate RushDB and Neo4j instances per tenant.

RequirementRecommended model
Fastest managed setupRushDB Cloud
Graph data in your cloud accountCloud with BYOC
Dedicated infrastructure per tenantSeparate self-hosted deployments

Operational Guidance​

  • Use separate projects for development, staging, and production.
  • Issue project-scoped API keys with the minimum required access level.
  • Keep Neo4j Bolt ports private and route application access through RushDB.
  • Review the Security guide before production deployment.
  • Read Neo4j & Aura when configuring BYOC.