Connect Graph DB
This guide describes how to register an externally hosted graph database in AI Knowledge Fabric, so GraphRAG Topics can store their knowledge graph there.
1. What is a graph database for?
A GraphRAG Topic reads your documents and finds the important things in them: people, products, places, terms. These are called entities. It also records how the entities are connected. All of this together is the knowledge graph. The graph database is where the knowledge graph is stored.
In the chat, a GraphRAG Topic uses this graph to answer questions that need connections between facts, not only single text passages.
A graph database is required for every GraphRAG Topic. There is no built-in store to fall back to. A registered graph database is the only way to give a GraphRAG Topic a place for its graph. A GraphRAG Topic also needs a registered vector database — see Connect Vector DB:
| Vector store | Graph store | |
|---|---|---|
Built-in option |
No |
No |
Registered database |
Required — see Connect Vector DB |
Required |
The platform does not start a graph database for you. The database must already be running, and you register a connection to it here. You register it once and can then use it in as many GraphRAG Topics as you like.
2. Supported types
| Type | Protocol | Default port | Default authentication | Notes |
|---|---|---|---|---|
CYROCK_DB |
gRPC |
|
API Key (fixed) |
Also needs a Project ID (a UUID) and a Graph Name — see CYROCK.DB |
NEO4J |
Bolt |
|
Username / Password |
|
MEMGRAPH |
Bolt |
|
None |
|
GENERIC_CYPHER |
Bolt |
|
Username / Password |
For other graph servers that speak the Bolt protocol and the Cypher query language |
The port and authentication values above are pre-filled when you pick a type for a new entry. Use TLS starts switched off. Change the values if your server differs.
When you edit an existing entry and change its type, the port and authentication are not
changed for you. Only CYROCK_DB still fixes the authentication to API Key.
The dialog names the protocol in the Port label once a type is picked: Port (gRPC) for
CYROCK_DB, Port (Bolt) for the others. The Endpoint column of the list shows the same as a
scheme (grpc://, grpcs://, bolt://, bolt+s://). So a wrong port or a wrong TLS setting is
visible without opening the entry.
CYROCK.DB: fixed port, fixed authentication
CYROCK.DB is reached over gRPC on port 9090. The same port serves encrypted and unencrypted
connections. Ticking Use TLS encrypts the connection and leaves the port as it is.
Three more fields are not free choices for this type:
-
Authentication is always
API Key. CYROCK.DB has no other way to log in. The picker is fixed and showsCyrockDB only accepts an API key, so this cannot be changed.The key is required. -
The Project ID is a UUID, not a project name. Use the project’s id, for example
123e4567-e89b-12d3-a456-426614174000. A name is rejected on Save. Otherwise it would only fail much later, when a GraphRAG Topic first connects. -
The Graph Name is required. It is the start of the graph’s name, not the full name. See Graph Name and Database Name.
|
The same CYROCK.DB server can also be registered under Admin → Vector Databases, as the vector store of a Topic or GraphRAG Topic. The port, the API-key rule and the Project ID rule are the same there. |
Bolt types: TLS comes from the scheme
NEO4J, MEMGRAPH and GENERIC_CYPHER are reached with a direct Bolt connection. The address is built from Host and Port:
-
Use TLS off →
bolt://<host>:<port>(not encrypted) -
Use TLS on →
bolt+s://<host>:<port>(encrypted)
Turn Use TLS on when the server only accepts encrypted connections. With TLS on, the server’s certificate must be trusted. A self-signed certificate cannot be verified, and the connection test says so.
The port does not change when you tick Use TLS. If your server uses a different port for encrypted connections, enter it yourself.
|
Not supported yet: Neo4j Aura and other Neo4j clusters with several servers. They need a
different kind of address ( |
3. Register the database
Navigate to Admin → Graph Databases and click Add Graph Database.
|
Viewing this screen requires the |
The list shows one row per registered database:
| Column | Shows |
|---|---|
Name |
The name you gave the entry |
Type |
|
Endpoint |
Protocol, host and port the platform connects to, for example |
Authentication |
|
Actions |
Edit and Delete |
The Search… field above the list filters by name and endpoint.
Fill in the dialog
| Field | Required | Notes |
|---|---|---|
Name |
Yes |
A name that tells you which database this is, for example |
Type |
Yes |
One of the four types above. For a new entry, picking a type fills in the port and authentication |
Host |
Yes |
Server name or IP address only — no |
Port / Port (Bolt) / Port (gRPC) |
Yes |
Pre-filled per type: |
Authentication |
Yes |
|
API Key |
If |
Required for CYROCK_DB. For the Bolt types, the key is sent as a login token. Use this only if your server is set up for token login |
Username / Password |
If |
The database user the GraphRAG Topics log in with |
Graph Name (CYROCK_DB) / Database Name (other types) |
CYROCK_DB: Yes. Others: No |
Means something different per type — see Graph Name and Database Name |
Project ID |
CYROCK_DB only |
The CYROCK.DB project where the graphs are created, as a UUID. Shown only for this type |
Use TLS |
No |
Off by default. Turn it on when the server only accepts encrypted connections. The port stays the same |
Description |
No |
A free note for your own documentation |
Click Save. The message Graph database saved confirms it.
The dialog does not close when you click outside it or press Esc. Leave it with Cancel or Save, so a pasted password or key is not lost by accident.
Graph Name and Database Name
The same field has a different label and a different meaning per type.
CYROCK_DB — Graph Name (required). This is only the start of the graph’s name. Each GraphRAG
Topic adds its own ID to it, for example <name>_<topic id>. The topic creates its graph on its
first start. So several topics can share one connection, and each topic keeps its own graph.
NEO4J, MEMGRAPH, GENERIC_CYPHER — Database Name (optional). This is the database on the server that the topic writes its graph to. It is used exactly as you type it.
-
It must already exist. The platform does not create it.
-
Leave it empty to use the server’s default database. Neo4j Community Edition has only this one.
-
All topics that use this connection write into the same database, and their graphs mix. A topic may then find entities from another topic’s documents. To keep topics apart, register one connection per topic, each with its own database. Or give each topic its own server.
Choosing the Host value
The host must be reachable from inside the GraphRAG Topic containers, not from your browser. The value is passed on to the containers as you type it.
| Where the database runs | Host value |
|---|---|
On the Docker host, Docker Desktop (Windows/macOS) |
|
On the Docker host, plain Linux Docker |
|
As another container on the same Docker network |
That container’s service name |
On another server or in the cloud |
Its hostname or IP, for example |
In Kubernetes, in the same cluster |
The Service DNS name, for example |
|
|
Enter only the bare host. Unlike the vector database dialog, this field does not take a pasted
URL apart for you. A value like bolt://graph.example.com would be put into a second bolt://
address and could never connect. Remove the scheme and use Port and Use TLS instead.
4. Test the connection
The dialog has a Test Connection button. Use it before saving. It tests the values currently
in the dialog, even if they are not saved yet. While it runs, the button reads Testing…. Each
attempt waits up to 5 seconds.
Pick a Type first. Otherwise the test stops with Select a type before testing the connection.
How deep the test goes depends on the type:
| Type | What is tested |
|---|---|
NEO4J, MEMGRAPH, GENERIC_CYPHER |
A real Bolt connection with login, built from the same address, TLS setting and credentials the GraphRAG Topics use. Checks host, port, TLS and the credentials |
CYROCK_DB |
A plain network connection to host and port only. The API key, Project ID and Graph Name are first checked when a GraphRAG Topic starts |
For the Bolt types, the test also opens the Database Name, if you entered one. So a misspelt or missing database shows up here, not only when a GraphRAG Topic starts. With an empty Database Name, the server’s default database is used and not checked separately.
| Message | Meaning |
|---|---|
|
The server answered and accepted the login. This configuration works |
|
The Database Name was found on the server |
|
Login works, but there is no database with this name. Check the spelling, or create the database on the server first |
|
Login works, but the database could not be opened. Some servers, for example Memgraph, do not support named databases — then leave the Database Name empty |
|
The server answered. Authentication is |
|
CYROCK_DB: the network path is fine. The other values are still unchecked |
|
Host, port and TLS are right. The username, password or key is wrong |
|
With Use TLS off: the server probably requires TLS — turn it on. With Use TLS on: the certificate cannot be verified, for example because it is self-signed |
|
The host name is unknown — check the Host field |
|
The host was found, but nothing listens on that port |
|
No answer within 5 seconds. A firewall may block the port |
|
The Bolt connection failed for another reason. The text after the colon gives the detail |
|
Fill in the field and test again |
5. Use the database in a GraphRAG Topic
In the GraphRAG Topic wizard, step Basic Information, section Storage:
-
Open the Graph Database dropdown. Entries appear as
Name (TYPE). -
Select your database. The field is required. Without a choice, the wizard shows
Required — select a graph database.and does not continue. -
If the list is empty, register a database on this screen first.
The vector store in the same section is separate. It holds the search data, not the graph. See Connect Vector DB.
Selecting the database is enough. Host, port, credentials and the graph or database name are passed to the topic container automatically when it starts.
|
Choose before the first upload, and then keep it. If you later switch a topic to a different graph database, or change the Graph Name or Database Name, the topic works with a different graph. The entities found so far are not moved there, so answers lose them. Upload the documents again after such a change. |
6. Editing and deleting
| Action | Effect |
|---|---|
Edit |
Changes reach a GraphRAG Topic the next time it starts. A running topic keeps the connection it was started with. Stop and start it to apply the change |
Delete |
Only removes the entry in this platform. The database and its data stay untouched. The confirmation says: |
A graph database that a GraphRAG Topic still uses cannot be deleted. The platform refuses with a message that names the topics:
"<name>" cannot be deleted: it is still used by <n> GraphRAG topic(s): <topic names>. Choose another database for these topics first.
Select another graph database in those topics first, or delete the topics. The check runs again when you confirm, in case a topic picked the database in the meantime.
Deleting a GraphRAG Topic does not delete its graph. It stays in the graph database and has to be removed there.
7. Limitations
-
No built-in graph store. Every GraphRAG Topic needs a registered graph database.
-
Neo4j Aura and Neo4j clusters with several servers are not supported yet. Only a direct connection to one server (
bolt://orbolt+s://) can be entered. -
Self-signed certificates cannot be verified with Use TLS.
-
Bolt types do not separate topics on their own. All topics on one connection share one database. Register one connection per topic to keep them apart.
-
The platform creates no database on Neo4j, Memgraph or other Bolt servers. A Database Name must exist before a topic uses it. Only CYROCK.DB creates the graph by itself.
-
The connection test is limited for CYROCK_DB: it checks only the network, not the API key, Project ID or Graph Name.
8. Troubleshooting
| Symptom | Cause and fix |
|---|---|
The Graph Database dropdown in the GraphRAG wizard is empty |
No graph database is registered yet. Add one on this screen first |
Add Graph Database, Edit and Delete are missing |
Your role has |
Test Connection: "Cannot resolve hostname" |
Wrong Host value. Do not use |
Test Connection: "Connection refused" |
Wrong port, or the database is not running. Bolt servers usually use |
Test Connection: "authentication was rejected" |
Host, port and TLS are right, but the login is not. Check username and password, or the key |
Test Connection: "TLS/certificate error" |
Use TLS does not match the server. Turn it on for a server that requires encryption, or off for one that does not. A self-signed certificate is not supported |
Test Connection fails with a host like |
The Host field holds a full address. Enter only the host name |
Test Connection succeeds, but the topic cannot use the graph |
For CYROCK_DB the test checks only the network, so check the API key, Project ID and Graph Name. Read the topic’s Logs tab |
Save rejected: "Project ID is required for CyrockDB" |
The Project ID field is empty. It is required for this type |
Save rejected: "The project ID must be a UUID, …" |
A project name was entered. Use the project’s id, for example |
Save rejected: "An API key is required for CyrockDB" |
CYROCK.DB logs in with an API key only. Enter the key |
Save rejected: "A graph name is required for CyrockDB" |
Enter the start of the graph name, for example |
A GraphRAG Topic does not start: "… needs a host, a project ID and a graph name — set them under Admin → Graph Databases." |
An older CYROCK_DB entry is incomplete. Open it with Edit, fill in the missing fields, and start the topic again |
A topic finds entities from another topic’s documents |
Both topics use the same Neo4j, Memgraph or other Bolt connection, so they write into the same database. Register one connection per topic, each with its own Database Name |
Neo4j Aura or a Neo4j cluster cannot be connected |
Not supported yet — only a single server reached directly works |
A change to the entry has no effect |
A running topic keeps the connection it was started with. Stop and start the topic |
Delete refused: "… is still used by … GraphRAG topic(s) …" |
Select another graph database in the named topics first, or delete them |
The database still holds data after deleting a topic |
Deleting a topic does not delete its graph. Remove it in the graph database itself |
Related
-
Connect Vector DB — the vector store, which a GraphRAG Topic needs in addition
-
Creating a GraphRAG Topic — Step by Step — where the graph database is picked