Skip to main content

Connecting a Neo4j Aura Instance (BYOC)

BYOC (Bring Your Own Cloud) means RushDB's API and query layer runs on RushDB infrastructure while your Neo4j or Aura instance is the actual data store. Your graph data never leaves your cloud account.

This is available on every plan including Free.


How it works

RushDB stores:

  • In your Neo4j/Aura — all record nodes, relationship edges, and vector embeddings
  • In RushDB's Postgres — project config, API keys, embedding index metadata, and billing records only

Step 1: Get your Neo4j Aura connection details

  1. Open console.neo4j.io and select your instance.
  2. Click ConnectDrivers to find your connection URI. It will look like:
    neo4j+s://xxxxxxxx.databases.neo4j.io
  3. Note the username (typically neo4j) and the password you set when creating the instance.
Free Aura tier

Neo4j AuraDB Free (1 GB) is sufficient for development and small production workloads. Create one at console.neo4j.io if you do not already have an account.


Step 2: Create a BYOC project in the RushDB dashboard

  1. Sign in to app.rushdb.com (or your self-hosted dashboard).
  2. Click New Project.
  3. Enable Use my own Neo4j instance (toggle in the project creation dialog).
  4. Enter your connection details:
    • Connection URIneo4j+s://xxxxxxxx.databases.neo4j.io
    • Usernameneo4j
    • Password — your Aura password
  5. Click Verify Connection. RushDB performs a lightweight Bolt handshake to confirm credentials.
  6. Click Create Project.

RushDB creates the project entry in its own Postgres, but all graph writes will go to your Aura instance.


Step 3: Get your API key

After the project is created, go to the API Keys tab and copy the generated key. This key authenticates requests to the RushDB API and is stored encrypted — RushDB never stores it in plaintext.


Step 4: Verify the connection

from rushdb import RushDB

db = RushDB('YOUR_API_KEY', base_url='https://api.rushdb.com/api/v1')

db.records.create('CONNECTION_TEST', {'ok': True})
result = db.records.find({'labels': ['CONNECTION_TEST']})
print(result.total) # 1 — written to your Aura instance

Step 5: Validate with a raw Cypher query (optional)

BYOC and self-hosted projects have access to POST /api/v1/query/raw. Use it to confirm data is landing in Aura directly.

result = db.query.raw(
"MATCH (n) RETURN labels(n) AS labels, count(n) AS count GROUP BY labels(n) LIMIT 20"
)
print(result)

You can also open the Aura console's built-in Browser and run the same Cypher query directly to confirm the same nodes appear.


BYOC with a self-hosted RushDB instance

If you are running RushDB on your own infrastructure and want to point it at an Aura instance, set the Neo4j env vars in your docker-compose.yml to your Aura URI instead of bolt://neo4j:7687:

environment:
NEO4J_URL: neo4j+s://xxxxxxxx.databases.neo4j.io:7687
NEO4J_USERNAME: neo4j
NEO4J_PASSWORD: your-aura-password

See Self-Hosting RushDB for the complete Docker Compose setup.


What changes with BYOC vs managed

Managed (default)BYOC
Data locationRushDB-managed Neo4jYour Aura / Neo4j
Raw Cypher accessNoYes — POST /query/raw
BillingKU-basedKU-based (same)
Wipe / restoreVia RushDB dashboardFull Neo4j backup tools available
SLA for the graphRushDB SLAYour Neo4j Aura SLA

See BYOC vs Managed vs Self-Hosted for a full comparison.


Next steps