From 5e58169152e2f59fe8dd5dd08c9c6cfe39ae825e Mon Sep 17 00:00:00 2001 From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com> Date: Tue, 17 Feb 2026 21:32:34 +0000 Subject: [PATCH 01/14] Initial plan From 0cc365398d171efbb1c6b314d5f286eab6963818 Mon Sep 17 00:00:00 2001 From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com> Date: Tue, 17 Feb 2026 21:35:47 +0000 Subject: [PATCH 02/14] Fix config, RedisGraph references, terminology, and Python versions Co-authored-by: gkorland <753206+gkorland@users.noreply.github.com> --- _config.yml | 19 ++++++++++++++----- commands/index.md | 2 +- design/client-spec.md | 20 ++++++++------------ design/third-party.md | 13 ++++--------- operations/k8s-support.md | 2 +- operations/migration/kuzu-to-falkordb.md | 2 +- operations/migration/neo4j-to-falkordb.md | 2 +- operations/opentelemetry.md | 12 +++++++----- 8 files changed, 37 insertions(+), 35 deletions(-) diff --git a/_config.yml b/_config.yml index efccb889..5d24ba53 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,7 @@ -remote_theme: just-the-docs/just-the-docs +remote_theme: just-the-docs/just-the-docs@v0.10.0 title: FalkorDB Docs description: The FalkorDB documentation +url: "https://docs.falkordb.com" logo: "/images/falkor-logo.png" logo_link: "https://www.falkordb.com" favicon_ico: "/images/favicon.ico" @@ -11,9 +12,9 @@ color_scheme: dark aux_links: "Docs Repository": - - "//github.com/falkordb/docs" + - "https://github.com/falkordb/docs" "FalkorDB Repository": - - "//github.com/falkordb/falkordb" + - "https://github.com/falkordb/falkordb" # Makes Aux links open in a new tab. Default is false @@ -25,10 +26,18 @@ nav_enabled: true plugins: - jekyll-sitemap - jekyll-redirect-from + - jekyll-seo-tag + +exclude: + - README.md + - Gemfile + - Gemfile.lock + - node_modules + - vendor # Footer last edited timestamp -last_edit_timestamp: true -last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html +last_edit_timestamp: true +last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/core/Time.html # Footer "Edit this page on GitHub" link text gh_edit_link: true diff --git a/commands/index.md b/commands/index.md index e43a16c7..b09250c4 100644 --- a/commands/index.md +++ b/commands/index.md @@ -9,7 +9,7 @@ has_children: true ## FalkorDB Features -FalkorDB exposes graph database functionality within Redis using the [openCypher](https://opencypher.org/) query language. Its basic commands accept openCypher queries, while additional commands are exposed for configuration or metadata retrieval. +FalkorDB is a graph database that exposes its functionality using the [openCypher](https://opencypher.org/) query language. Its basic commands accept openCypher queries, while additional commands are exposed for configuration or metadata retrieval. ## FalkorDB API diff --git a/design/client-spec.md b/design/client-spec.md index eef28a04..b2a07dc9 100644 --- a/design/client-spec.md +++ b/design/client-spec.md @@ -35,9 +35,9 @@ Instructions on how to efficiently convert these IDs in the [Procedure Calls](#p Additionally, two enums are exposed: -[ColumnType](https://github.com/FalkorDB/FalkorDB/blob/ff108d7e21061025166a35d29be1a1cb5bac6d55/src/resultset/formatters/resultset_formatter.h#L14-L19), which as of v2.1.0 will always be `COLUMN_SCALAR`. This enum is retained for backwards compatibility, and may be ignored by the client unless versions older than v2.1.0 must be supported. +[ColumnType](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h) enum, which as of v2.1.0 will always be `COLUMN_SCALAR`. This enum is retained for backwards compatibility, and may be ignored by the client unless versions older than v2.1.0 must be supported. -[ValueType](https://github.com/FalkorDB/FalkorDB/blob/ff108d7e21061025166a35d29be1a1cb5bac6d55/src/resultset/formatters/resultset_formatter.h#L21-L28) indicates the data type (such as Node, integer, or string) of each returned value. Each value is emitted as a 2-array, with this enum in the first position and the actual value in the second. Each property on a graph entity also has a scalar as its value, so this construction is nested in each value of the properties array when a column contains a node or relationship. +[ValueType](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h) enum indicates the data type (such as Node, integer, or string) of each returned value. Each value is emitted as a 2-array, with this enum in the first position and the actual value in the second. Each property on a graph entity also has a scalar as its value, so this construction is nested in each value of the properties array when a column contains a node or relationship. ## Decoding the result set @@ -154,7 +154,7 @@ Each is emitted as a 2-array: 2) column name (string) ``` -The first element is the [ColumnType enum](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h#L14-L19), which as of RedisGraph v2.1.0 will always be `COLUMN_SCALAR`. This element is retained for backwards compatibility, and may be ignored by the client unless RedisGraph versions older than v2.1.0 must be supported. +The first element is the [ColumnType enum](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h), which as of FalkorDB v2.1.0 will always be `COLUMN_SCALAR`. This element is retained for backwards compatibility, and may be ignored by the client unless FalkorDB versions older than v2.1.0 must be supported. ### Reading result rows @@ -183,12 +183,12 @@ Our query produced one row of results with 3 columns (as described by the header Each element is emitted as a 2-array - [`ValueType`, value]. -It is the client's responsibility to store the [ValueType enum](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h#L21-L28). FalkorDB guarantees that this enum may be extended in the future, but the existing values will not be altered. +It is the client's responsibility to store the [ValueType enum](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h). FalkorDB guarantees that this enum may be extended in the future, but the existing values will not be altered. The `ValueType` for the first entry is `VALUE_NODE`. The node representation contains 3 top-level elements: 1. The node's internal ID. -2. An array of all label IDs associated with the node (currently, each node can have either 0 or 1 labels, though this restriction may be lifted in the future). +2. An array of all label IDs associated with the node (nodes can have zero or more labels). 3. An array of all properties the node contains. Properties are represented as 3-arrays - [property key ID, `ValueType`, value]. ```sh @@ -231,11 +231,11 @@ The final top-level member of the GRAPH.QUERY reply is the execution statistics. The statistics always include query execution time, while any combination of the other elements may be included depending on how the graph was modified. 1. "Labels added: (integer)" -2. "Labels removed: (integer)" (since RedisGraph 2.10) +2. "Labels removed: (integer)" 3. "Nodes created: (integer)" 4. "Nodes deleted: (integer)" 5. "Properties set: (integer)" -6. "Properties removed: (integer)" (since RedisGraph 2.10) +6. "Properties removed: (integer)" 7. "Relationships created: (integer)" 8. "Relationships deleted: (integer)" 9. "Indices created: (integer)" @@ -289,10 +289,6 @@ CALL db.propertyKeys() YIELD propertyKey RETURN propertyKey SKIP [cached_array_l Though the property calls are quite efficient regardless of whether this optimization is used. -As an example, the Python client checks its local array of labels to resolve every label ID [as seen here](https://github.com/RedisGraph/redisgraph-py/blob/d65ec325b1909489845427b7100dcba6c4050b66/redisgraph/graph.py#L20-L32). - -In the case of an IndexError, it issues a procedure call to fully refresh its label cache [as seen here](https://github.com/RedisGraph/redisgraph-py/blob/d65ec325b1909489845427b7100dcba6c4050b66/redisgraph/graph.py#L153-L154). - ## Reference clients -All the logic described in this document has been implemented in most of the clients listed in [Client Libraries](clients). Among these, `node-redis`, `redis-py` and `jedis` are currently the most sophisticated. +All the logic described in this document has been implemented in most of the clients listed in [Client Libraries](/getting-started/clients). Among these, the official FalkorDB clients for Python, Node.js, and Java are currently the most sophisticated. diff --git a/design/third-party.md b/design/third-party.md index 357b59d5..f0160387 100644 --- a/design/third-party.md +++ b/design/third-party.md @@ -47,15 +47,10 @@ Below is a list of these libraries along with their respective licenses. ### 10. [CRoaring](https://github.com/RoaringBitmap/CRoaring?tab=License-1-ov-file#readme) - **License**: [Apache License 2.0](https://github.com/RoaringBitmap/CRoaring?tab=License-1-ov-file#readme) -### 11. RedisGraph -- **License**: [RSALv2](https://redis.io/legal/rsalv2-agreement/) or [SSPLv1](https://redis.io/legal/server-side-public-license-sspl/) - -### 12. Redis -- **License**: [RSALv2](https://redis.io/legal/rsalv2-agreement/) or [SSPLv1](https://redis.io/legal/server-side-public-license-sspl/) - -### 13. RediSearch -- **License**: [RSALv2](https://redis.io/legal/rsalv2-agreement/) or [SSPLv1](https://redis.io/legal/server-side-public-license-sspl/) - --- Each of these libraries is crucial for FalkorDB's performance, scalability, and functionality. For further details, consult the respective license files linked above. + +## Historical Attribution + +FalkorDB is built upon technology originally developed as RedisGraph (licensed under RSALv2/SSPLv1) and Redis (licensed under RSALv2/SSPLv1), and RediSearch (licensed under RSALv2/SSPLv1). FalkorDB continues to evolve these technologies under an open-source model. diff --git a/operations/k8s-support.md b/operations/k8s-support.md index 9618ab5a..cd8e4e0d 100644 --- a/operations/k8s-support.md +++ b/operations/k8s-support.md @@ -48,7 +48,7 @@ replica: ``` This file specify the FalkorDB image(you can choose different tags) -and configure the master and slave to load the FalkorDB module. +and configure the master and replicas to load the FalkorDB module. For additional configurations [see the official Helm chart documentation](https://github.com/bitnami/charts/blob/main/bitnami/redis/values.yaml) ## Step 2: Install FalkorDB Helm Charts diff --git a/operations/migration/kuzu-to-falkordb.md b/operations/migration/kuzu-to-falkordb.md index 731be8b6..196692bd 100644 --- a/operations/migration/kuzu-to-falkordb.md +++ b/operations/migration/kuzu-to-falkordb.md @@ -28,7 +28,7 @@ The process ensures complete data migration including nodes, relationships, prop ## Prerequisites -- Python 3.6+ +- Python 3.9+ - `kuzu` Python package - FalkorDB instance (local, Docker, or Cloud) - [FalkorDB Rust Loader](https://github.com/FalkorDB/FalkorDB-Loader-RS) diff --git a/operations/migration/neo4j-to-falkordb.md b/operations/migration/neo4j-to-falkordb.md index fbbe4217..d0514fb4 100644 --- a/operations/migration/neo4j-to-falkordb.md +++ b/operations/migration/neo4j-to-falkordb.md @@ -22,7 +22,7 @@ The migration process consists of the following steps: - Neo4j instance (local or remote) - FalkorDB instance (local, Docker, or Cloud) -- Python 3.6+ +- Python 3.9+ - Migration tools from the [Neo4j-to-FalkorDB repository](https://github.com/FalkorDB/Neo4j-to-FalkorDB) ## Step 1: Setting Up Neo4j diff --git a/operations/opentelemetry.md b/operations/opentelemetry.md index d6bad81b..757b34f7 100644 --- a/operations/opentelemetry.md +++ b/operations/opentelemetry.md @@ -2,23 +2,25 @@ title: "OpenTelemetry Integration" nav_order: 5 parent: Operations -description: "Comprehensive guide for setting up OpenTelemetry observability and tracing with FalkorDB Python applications" +description: "Guide for setting up OpenTelemetry tracing with FalkorDB Python applications" redirect_from: - /opentelemetry.html - /opentelemetry --- -# OpenTelemetry with FalkorDB-py Guide +# OpenTelemetry Tracing with FalkorDB-py Guide -This guide explains how to set up and use OpenTelemetry (OTel) to monitor and trace your FalkorDB Python applications. +This guide explains how to set up and use OpenTelemetry (OTel) tracing to monitor your FalkorDB Python applications. ## Overview -OpenTelemetry is an observability framework that allows you to collect, process, and export telemetry data (metrics, logs, and traces) from your applications. When integrated with FalkorDB-py, it provides valuable insights into database operations, query performance, and application behavior. +OpenTelemetry is an observability framework that allows you to collect, process, and export telemetry data from your applications. When integrated with FalkorDB-py, it provides valuable insights into database operations and query performance through distributed tracing. + +**Note:** This guide focuses on tracing capabilities. OpenTelemetry supports additional observability features like metrics and logs that can be configured separately. ## Prerequisites -- Python 3.8 or higher +- Python 3.9 or higher - FalkorDB server running (locally or remotely) - Basic understanding of Python and FalkorDB From 07523aa74fbccabf5e8297458a38ddd14a940e75 Mon Sep 17 00:00:00 2001 From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com> Date: Tue, 17 Feb 2026 21:37:33 +0000 Subject: [PATCH 03/14] Fix client compatibility notes, cloud docs, and UDF structural issues Co-authored-by: gkorland <753206+gkorland@users.noreply.github.com> --- cloud/features.md | 20 +++++++++++++++++++- cloud/free-tier.md | 2 +- getting-started/clients.md | 2 ++ udfs/index.md | 8 +++----- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/cloud/features.md b/cloud/features.md index 72f8617b..d5f48013 100644 --- a/cloud/features.md +++ b/cloud/features.md @@ -55,9 +55,27 @@ FalkorDB persists data through regular snapshots and transaction logs. These mec ## Graph Browser You can connect to the falkordb browser (integrated into your web browser) from the cloud console. The browser allows visualizing query results, allows you to traverse the graph and more. Multi Graph support is enabled by default in the browser which simplifies navigation and data management. -### Solution Architecture +## Solution Architecture Solution architecture support helps you design how FalkorDB integrates with your broader application infrastructure. This guidance covers connection patterns, data modeling approaches, and best practices for specific use cases. Teams building complex systems benefit from architectural advice to avoid common pitfalls and optimize their graph database implementation. Poor architectural decisions early in development create technical debt that becomes expensive to fix later. Architecture consultations provide recommendations on graph schema design, query optimization strategies, and integration patterns that match your application requirements. + +## Graph Access Control +_Documentation pending_ + +## Cluster Deployment +_Documentation pending_ + +## High Availability +_Documentation pending_ + +## Multi-zone Deployment +_Documentation pending_ + +## Automated Backups +_Documentation pending_ + +## Advanced Monitoring +_Documentation pending_ diff --git a/cloud/free-tier.md b/cloud/free-tier.md index 888e9025..c3717591 100644 --- a/cloud/free-tier.md +++ b/cloud/free-tier.md @@ -33,7 +33,7 @@ The free tier provides everything you need to explore FalkorDB and build initial | **Cloud Providers** | AWS, GCP | AWS, GCP | AWS, GCP | AWS, GCP, Azure | | **Call-to-Action** | [Sign up](https://app.falkordb.cloud/signup) | [Sign up](https://app.falkordb.cloud/signup) | [Sign up](https://app.falkordb.cloud/signup) | [Contact Us](mailto:info@falkordb.com) | -#### Terms +## Terms > ⚠️ Free instances that aren't utilized for 1 day will be stopped, and deleted after 7 days. Need an extension? Speak to [sales](https://www.falkordb.com/get-a-demo/) diff --git a/getting-started/clients.md b/getting-started/clients.md index b91dc65c..6ddd5f0a 100644 --- a/getting-started/clients.md +++ b/getting-started/clients.md @@ -32,6 +32,8 @@ FalkorDB provides official Object-Graph Mapping (OGM) libraries that allow you t ## Additional Clients +**Note:** Some clients below were originally developed for RedisGraph. While many may work with FalkorDB due to protocol compatibility, they are not officially tested or supported. For best results, use the official FalkorDB clients listed above. + | Project | Language | License | Author | Package | | --------------------------------------------------------- | ---------- | ---------- | ------------------------------------------- | ---------------------------------------- | | [nredisstack][nredisstack-url] | .NET | MIT | [Redis][redis-url] | [nuget][nredisstack-package] | diff --git a/udfs/index.md b/udfs/index.md index 103c36a2..450c0da8 100644 --- a/udfs/index.md +++ b/udfs/index.md @@ -235,7 +235,7 @@ function stringify_path(p) { ### Graph UDFs have access to a global `graph` object which represents the current graph executing the UDF. The object exposes a single function `traverse` which is similar to the node's `getNeighbors` function (see docs above) -but can perform multi-source traversal. +but can perform multi-source traversal, which can be faster than performing multiple individual calls to getNeighbors. ```javascript function multi_source_bfs(sources, config) { @@ -250,8 +250,6 @@ function multi_source_bfs(sources, config) { ### Falkor The `falkor` global object represents the FalkorDB database and is used mostly to register UDFs. The object exposes two functions: -Using the multi source traversal can be faster than performing multiple individual calls to getNeighbors. - - `log` - logs a message to the database stdout. - `register` - exposes a function to the database. @@ -271,7 +269,7 @@ falkor.log(msg) |-----------|------|----------|-------------| | `message` | string | Yes | message to log | -##### falkor.register +#### falkor.register ##### Description Register a function to the database @@ -391,7 +389,7 @@ load_graph(g) compute_jaccard_sim(g) ``` -The scripts load our two UDF libraries `collection` and `similarity` construct a graph and computes Jaccard similarity between `Alice` and every other node in the graph via the query: +The scripts load our two UDF libraries, `collection` and `similarity`, construct a graph, and compute Jaccard similarity between `Alice` and every other node in the graph via the query: ```bash MATCH (alice:Person {name: 'Alice'}), (n) From 7d7a02439c9b11f7098848e7b0e5a23056bbbd24 Mon Sep 17 00:00:00 2001 From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com> Date: Tue, 17 Feb 2026 21:39:17 +0000 Subject: [PATCH 04/14] Add redirect_from to Cypher documentation pages Co-authored-by: gkorland <753206+gkorland@users.noreply.github.com> --- cypher/call.md | 3 +++ cypher/foreach.md | 3 +++ cypher/limit.md | 3 +++ cypher/match.md | 3 +++ cypher/merge.md | 3 +++ cypher/procedures.md | 3 +++ cypher/remove.md | 3 +++ cypher/set.md | 3 +++ cypher/skip.md | 3 +++ cypher/unwind.md | 3 +++ cypher/where.md | 3 +++ cypher/with.md | 3 +++ 12 files changed, 36 insertions(+) diff --git a/cypher/call.md b/cypher/call.md index 906e573f..549a1a4c 100644 --- a/cypher/call.md +++ b/cypher/call.md @@ -4,6 +4,9 @@ nav_order: 16 description: > The CALL {} (subquery) clause allows local execution of subqueries, which opens the door for many comfortable and efficient actions on a graph. parent: "Cypher Language" +redirect_from: + - /cypher/call.html + - /cypher/call --- # CALL \{\} diff --git a/cypher/foreach.md b/cypher/foreach.md index 66b2b0fc..9df30771 100644 --- a/cypher/foreach.md +++ b/cypher/foreach.md @@ -4,6 +4,9 @@ nav_order: 15 description: > The FOREACH clause feeds the components of a list to a sub-query comprised of updating clauses only parent: "Cypher Language" +redirect_from: + - /cypher/foreach.html + - /cypher/foreach --- # FOREACH diff --git a/cypher/limit.md b/cypher/limit.md index 4e81311d..826a54b9 100644 --- a/cypher/limit.md +++ b/cypher/limit.md @@ -4,6 +4,9 @@ nav_order: 7 description: > Can use the limit clause to limit the number of records returned by a query parent: "Cypher Language" +redirect_from: + - /cypher/limit.html + - /cypher/limit --- # LIMIT diff --git a/cypher/match.md b/cypher/match.md index 6976a83d..17a1a481 100644 --- a/cypher/match.md +++ b/cypher/match.md @@ -4,6 +4,9 @@ nav_order: 1 description: > Match describes the relationship between queried entities, using ascii art to represent pattern(s) to match against. parent: "Cypher Language" +redirect_from: + - /cypher/match.html + - /cypher/match --- # MATCH diff --git a/cypher/merge.md b/cypher/merge.md index 55446e37..e4850dd6 100644 --- a/cypher/merge.md +++ b/cypher/merge.md @@ -4,6 +4,9 @@ nav_order: 11 description: > The MERGE clause ensures that a path exists in the graph (either the path already exists, or it needs to be created). parent: "Cypher Language" +redirect_from: + - /cypher/merge.html + - /cypher/merge --- # MERGE diff --git a/cypher/procedures.md b/cypher/procedures.md index 2977118f..335efc70 100644 --- a/cypher/procedures.md +++ b/cypher/procedures.md @@ -4,6 +4,9 @@ nav_order: 19 description: > Calling procedures using CALL and YIELD. parent: "Cypher Language" +redirect_from: + - /cypher/procedures.html + - /cypher/procedures --- # Procedures diff --git a/cypher/remove.md b/cypher/remove.md index 86bb5ae5..325cf308 100644 --- a/cypher/remove.md +++ b/cypher/remove.md @@ -5,6 +5,9 @@ description: > REMOVE is used to remove attributes from node and relationships, in addition to removing labels from nodes. parent: "Cypher Language" +redirect_from: + - /cypher/remove.html + - /cypher/remove --- # REMOVE diff --git a/cypher/set.md b/cypher/set.md index 6b7256a8..21f5067e 100644 --- a/cypher/set.md +++ b/cypher/set.md @@ -4,6 +4,9 @@ nav_order: 10 description: > SET is used to create or update properties on nodes and relationships. parent: "Cypher Language" +redirect_from: + - /cypher/set.html + - /cypher/set --- # SET diff --git a/cypher/skip.md b/cypher/skip.md index aba51ea4..73f34bf6 100644 --- a/cypher/skip.md +++ b/cypher/skip.md @@ -4,6 +4,9 @@ nav_order: 6 description: > The optional skip clause allows a specified number of records to be omitted from the result set. parent: "Cypher Language" +redirect_from: + - /cypher/skip.html + - /cypher/skip --- # SKIP diff --git a/cypher/unwind.md b/cypher/unwind.md index c474e29f..670ac430 100644 --- a/cypher/unwind.md +++ b/cypher/unwind.md @@ -4,6 +4,9 @@ nav_order: 14 description: > The UNWIND clause breaks down a given list into a sequence of records; each contains a single element in the list. parent: "Cypher Language" +redirect_from: + - /cypher/unwind.html + - /cypher/unwind --- # UNWIND diff --git a/cypher/where.md b/cypher/where.md index d0860ef9..c549f5b5 100644 --- a/cypher/where.md +++ b/cypher/where.md @@ -4,6 +4,9 @@ nav_order: 3 description: > Optional clause used to filter results based on predicates. parent: "Cypher Language" +redirect_from: + - /cypher/where.html + - /cypher/where --- # WHERE diff --git a/cypher/with.md b/cypher/with.md index 2bacb054..7ad6b30a 100644 --- a/cypher/with.md +++ b/cypher/with.md @@ -4,6 +4,9 @@ nav_order: 12 description: > The WITH clause allows parts of queries to be independently executed and have their results handled uniquely. parent: "Cypher Language" +redirect_from: + - /cypher/with.html + - /cypher/with --- # WITH From 95cad336522d5408dac922b12e870f5cf0cd0152 Mon Sep 17 00:00:00 2001 From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com> Date: Wed, 18 Feb 2026 17:02:08 +0000 Subject: [PATCH 05/14] Fix spelling errors in k8s-support.md Co-authored-by: gkorland <753206+gkorland@users.noreply.github.com> --- operations/k8s-support.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/operations/k8s-support.md b/operations/k8s-support.md index cd8e4e0d..853a20b7 100644 --- a/operations/k8s-support.md +++ b/operations/k8s-support.md @@ -47,8 +47,8 @@ replica: - "--loadmodule /var/lib/falkordb/bin/falkordb.so" ``` -This file specify the FalkorDB image(you can choose different tags) -and configure the master and replicas to load the FalkorDB module. +This file specifies the FalkorDB image (you can choose different tags) +and configures the master and replicas to load the FalkorDB module. For additional configurations [see the official Helm chart documentation](https://github.com/bitnami/charts/blob/main/bitnami/redis/values.yaml) ## Step 2: Install FalkorDB Helm Charts From a1afc303c080bd950279cb6781b9ce9c5b28f47a Mon Sep 17 00:00:00 2001 From: Guy Korland Date: Sun, 22 Mar 2026 08:59:06 +0200 Subject: [PATCH 06/14] fix(spellcheck): add lowercase 'foreach' to wordlist Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .wordlist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.wordlist.txt b/.wordlist.txt index 51b29076..4dbd2b60 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -39,6 +39,7 @@ Dropzone Embedder FOF FOREACH +foreach Falkor FalkorDB FalkorDB's From a39e57565890e5519b6707e7953498f1e5e5607c Mon Sep 17 00:00:00 2001 From: Guy Korland Date: Sun, 22 Mar 2026 09:03:01 +0200 Subject: [PATCH 07/14] Remove pending documentation sections from features.md Removed sections on Graph Access Control, Cluster Deployment, High Availability, Multi-zone Deployment, Automated Backups, and Advanced Monitoring due to pending documentation. --- cloud/features.md | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/cloud/features.md b/cloud/features.md index 1b58ec6e..600687a0 100644 --- a/cloud/features.md +++ b/cloud/features.md @@ -70,21 +70,3 @@ Solution architecture support helps you design how FalkorDB integrates with your Teams building complex systems benefit from architectural advice to avoid common pitfalls and optimize their graph database implementation. Poor architectural decisions early in development create technical debt that becomes expensive to fix later. Architecture consultations provide recommendations on graph schema design, query optimization strategies, and integration patterns that match your application requirements. - -## Graph Access Control -_Documentation pending_ - -## Cluster Deployment -_Documentation pending_ - -## High Availability -_Documentation pending_ - -## Multi-zone Deployment -_Documentation pending_ - -## Automated Backups -_Documentation pending_ - -## Advanced Monitoring -_Documentation pending_ From 54343969b310811f1ae5b1a85529c604198aa76f Mon Sep 17 00:00:00 2001 From: Guy Korland Date: Sun, 22 Mar 2026 09:05:12 +0200 Subject: [PATCH 08/14] docs(cypher): remove redirect_from blocks from cypher pages Remove redirect_from front matter added to 12 cypher pages: call, foreach, limit, match, merge, procedures, remove, set, skip, unwind, where, with. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- cypher/call.md | 3 --- cypher/foreach.md | 3 --- cypher/limit.md | 3 --- cypher/match.md | 3 --- cypher/merge.md | 3 --- cypher/procedures.md | 3 --- cypher/remove.md | 3 --- cypher/set.md | 3 --- cypher/skip.md | 3 --- cypher/unwind.md | 3 --- cypher/where.md | 3 --- cypher/with.md | 3 --- 12 files changed, 36 deletions(-) diff --git a/cypher/call.md b/cypher/call.md index 15847847..2632c3db 100644 --- a/cypher/call.md +++ b/cypher/call.md @@ -4,9 +4,6 @@ nav_order: 16 description: > The CALL {} (subquery) clause allows local execution of subqueries, which opens the door for many comfortable and efficient actions on a graph. parent: "Cypher Language" -redirect_from: - - /cypher/call.html - - /cypher/call --- # CALL \{\} diff --git a/cypher/foreach.md b/cypher/foreach.md index 9df30771..66b2b0fc 100644 --- a/cypher/foreach.md +++ b/cypher/foreach.md @@ -4,9 +4,6 @@ nav_order: 15 description: > The FOREACH clause feeds the components of a list to a sub-query comprised of updating clauses only parent: "Cypher Language" -redirect_from: - - /cypher/foreach.html - - /cypher/foreach --- # FOREACH diff --git a/cypher/limit.md b/cypher/limit.md index 826a54b9..4e81311d 100644 --- a/cypher/limit.md +++ b/cypher/limit.md @@ -4,9 +4,6 @@ nav_order: 7 description: > Can use the limit clause to limit the number of records returned by a query parent: "Cypher Language" -redirect_from: - - /cypher/limit.html - - /cypher/limit --- # LIMIT diff --git a/cypher/match.md b/cypher/match.md index 17a1a481..6976a83d 100644 --- a/cypher/match.md +++ b/cypher/match.md @@ -4,9 +4,6 @@ nav_order: 1 description: > Match describes the relationship between queried entities, using ascii art to represent pattern(s) to match against. parent: "Cypher Language" -redirect_from: - - /cypher/match.html - - /cypher/match --- # MATCH diff --git a/cypher/merge.md b/cypher/merge.md index e4850dd6..55446e37 100644 --- a/cypher/merge.md +++ b/cypher/merge.md @@ -4,9 +4,6 @@ nav_order: 11 description: > The MERGE clause ensures that a path exists in the graph (either the path already exists, or it needs to be created). parent: "Cypher Language" -redirect_from: - - /cypher/merge.html - - /cypher/merge --- # MERGE diff --git a/cypher/procedures.md b/cypher/procedures.md index 335efc70..2977118f 100644 --- a/cypher/procedures.md +++ b/cypher/procedures.md @@ -4,9 +4,6 @@ nav_order: 19 description: > Calling procedures using CALL and YIELD. parent: "Cypher Language" -redirect_from: - - /cypher/procedures.html - - /cypher/procedures --- # Procedures diff --git a/cypher/remove.md b/cypher/remove.md index 325cf308..86bb5ae5 100644 --- a/cypher/remove.md +++ b/cypher/remove.md @@ -5,9 +5,6 @@ description: > REMOVE is used to remove attributes from node and relationships, in addition to removing labels from nodes. parent: "Cypher Language" -redirect_from: - - /cypher/remove.html - - /cypher/remove --- # REMOVE diff --git a/cypher/set.md b/cypher/set.md index 21f5067e..6b7256a8 100644 --- a/cypher/set.md +++ b/cypher/set.md @@ -4,9 +4,6 @@ nav_order: 10 description: > SET is used to create or update properties on nodes and relationships. parent: "Cypher Language" -redirect_from: - - /cypher/set.html - - /cypher/set --- # SET diff --git a/cypher/skip.md b/cypher/skip.md index 73f34bf6..aba51ea4 100644 --- a/cypher/skip.md +++ b/cypher/skip.md @@ -4,9 +4,6 @@ nav_order: 6 description: > The optional skip clause allows a specified number of records to be omitted from the result set. parent: "Cypher Language" -redirect_from: - - /cypher/skip.html - - /cypher/skip --- # SKIP diff --git a/cypher/unwind.md b/cypher/unwind.md index 670ac430..c474e29f 100644 --- a/cypher/unwind.md +++ b/cypher/unwind.md @@ -4,9 +4,6 @@ nav_order: 14 description: > The UNWIND clause breaks down a given list into a sequence of records; each contains a single element in the list. parent: "Cypher Language" -redirect_from: - - /cypher/unwind.html - - /cypher/unwind --- # UNWIND diff --git a/cypher/where.md b/cypher/where.md index c549f5b5..d0860ef9 100644 --- a/cypher/where.md +++ b/cypher/where.md @@ -4,9 +4,6 @@ nav_order: 3 description: > Optional clause used to filter results based on predicates. parent: "Cypher Language" -redirect_from: - - /cypher/where.html - - /cypher/where --- # WHERE diff --git a/cypher/with.md b/cypher/with.md index 7ad6b30a..2bacb054 100644 --- a/cypher/with.md +++ b/cypher/with.md @@ -4,9 +4,6 @@ nav_order: 12 description: > The WITH clause allows parts of queries to be independently executed and have their results handled uniquely. parent: "Cypher Language" -redirect_from: - - /cypher/with.html - - /cypher/with --- # WITH From 85928fd4c83ffaf60d6e012dfec90f6c90083b6d Mon Sep 17 00:00:00 2001 From: Guy Korland Date: Sun, 22 Mar 2026 09:08:14 +0200 Subject: [PATCH 09/14] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- design/third-party.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/design/third-party.md b/design/third-party.md index 83467ff7..3a4daf1f 100644 --- a/design/third-party.md +++ b/design/third-party.md @@ -54,4 +54,4 @@ Each of these libraries is crucial for FalkorDB's performance, scalability, and ## Historical Attribution -FalkorDB is built upon technology originally developed as RedisGraph (licensed under RSALv2/SSPLv1) and Redis (licensed under RSALv2/SSPLv1), and RediSearch (licensed under RSALv2/SSPLv1). FalkorDB continues to evolve these technologies under an open-source model. +FalkorDB is built upon technology originally developed as RedisGraph (licensed under RSALv2/SSPLv1), Redis (licensed under RSALv2/SSPLv1), and RediSearch (licensed under RSALv2/SSPLv1). FalkorDB continues to evolve these technologies under an open-source model. From 48107531aa780b562c35dcd3f7af5ea3561eeb4f Mon Sep 17 00:00:00 2001 From: Guy Korland Date: Sun, 22 Mar 2026 09:14:17 +0200 Subject: [PATCH 10/14] fix(config): revert pinned theme version to use latest There is a newer version available than v0.10.0, so revert to unpinned remote_theme to pick it up automatically. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- _config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 5d24ba53..59d7f0f0 100644 --- a/_config.yml +++ b/_config.yml @@ -1,4 +1,4 @@ -remote_theme: just-the-docs/just-the-docs@v0.10.0 +remote_theme: just-the-docs/just-the-docs title: FalkorDB Docs description: The FalkorDB documentation url: "https://docs.falkordb.com" From a5422b2c5af6507ed5f57da314543f7b20d95b1d Mon Sep 17 00:00:00 2001 From: Guy Korland Date: Sun, 22 Mar 2026 09:36:22 +0200 Subject: [PATCH 11/14] docs(licenses): revert third-party.md changes, add AGPL license Revert the Historical Attribution rewrite and restore the original RedisGraph, Redis, and RediSearch entries. Add AGPLv3 as an additional license option for all three. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- design/third-party.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/design/third-party.md b/design/third-party.md index 3a4daf1f..7992a12d 100644 --- a/design/third-party.md +++ b/design/third-party.md @@ -48,10 +48,15 @@ Below is a list of these libraries along with their respective licenses. ### 10. [CRoaring](https://github.com/RoaringBitmap/CRoaring?tab=License-1-ov-file#readme) - **License**: [Apache License 2.0](https://github.com/RoaringBitmap/CRoaring?tab=License-1-ov-file#readme) ---- +### 11. RedisGraph +- **License**: [RSALv2](https://redis.io/legal/rsalv2-agreement/) or [SSPLv1](https://redis.io/legal/server-side-public-license-sspl/) or [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html) -Each of these libraries is crucial for FalkorDB's performance, scalability, and functionality. For further details, consult the respective license files linked above. +### 12. Redis +- **License**: [RSALv2](https://redis.io/legal/rsalv2-agreement/) or [SSPLv1](https://redis.io/legal/server-side-public-license-sspl/) or [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html) -## Historical Attribution +### 13. RediSearch +- **License**: [RSALv2](https://redis.io/legal/rsalv2-agreement/) or [SSPLv1](https://redis.io/legal/server-side-public-license-sspl/) or [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html) -FalkorDB is built upon technology originally developed as RedisGraph (licensed under RSALv2/SSPLv1), Redis (licensed under RSALv2/SSPLv1), and RediSearch (licensed under RSALv2/SSPLv1). FalkorDB continues to evolve these technologies under an open-source model. +--- + +Each of these libraries is crucial for FalkorDB's performance, scalability, and functionality. For further details, consult the respective license files linked above. From 2bcf6c0b2852ca4d24838eeab271da83db6a85c6 Mon Sep 17 00:00:00 2001 From: Guy Korland Date: Sun, 22 Mar 2026 09:38:07 +0200 Subject: [PATCH 12/14] fix(spellcheck): add AGPLv3 to wordlist Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .wordlist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.wordlist.txt b/.wordlist.txt index 4dbd2b60..d169a409 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -1,4 +1,5 @@ ACL +AGPLv3 AOF AST Aldis From 7d3c250f97da7f54614e593bb28f71794d43850b Mon Sep 17 00:00:00 2001 From: Guy Korland Date: Sun, 22 Mar 2026 09:40:09 +0200 Subject: [PATCH 13/14] fix(spellcheck): add AGPLv to wordlist Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .wordlist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.wordlist.txt b/.wordlist.txt index d169a409..3f2f86aa 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -1,4 +1,5 @@ ACL +AGPLv AGPLv3 AOF AST From 239542af829f6e026f0de61af08db398fb09f333 Mon Sep 17 00:00:00 2001 From: Guy Korland Date: Sun, 22 Mar 2026 09:52:14 +0200 Subject: [PATCH 14/14] docs(client-spec): revert GitHub code link changes Restore original commit hash links with line anchors and redisgraph-py example references. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- design/client-spec.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/design/client-spec.md b/design/client-spec.md index f15c2ac5..225648ba 100644 --- a/design/client-spec.md +++ b/design/client-spec.md @@ -36,9 +36,9 @@ Instructions on how to efficiently convert these IDs in the [Procedure Calls](#p Additionally, two enums are exposed: -[ColumnType](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h) enum, which as of v2.1.0 will always be `COLUMN_SCALAR`. This enum is retained for backwards compatibility, and may be ignored by the client unless versions older than v2.1.0 must be supported. +[ColumnType](https://github.com/FalkorDB/FalkorDB/blob/ff108d7e21061025166a35d29be1a1cb5bac6d55/src/resultset/formatters/resultset_formatter.h#L14-L19), which as of v2.1.0 will always be `COLUMN_SCALAR`. This enum is retained for backwards compatibility, and may be ignored by the client unless versions older than v2.1.0 must be supported. -[ValueType](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h) enum indicates the data type (such as Node, integer, or string) of each returned value. Each value is emitted as a 2-array, with this enum in the first position and the actual value in the second. Each property on a graph entity also has a scalar as its value, so this construction is nested in each value of the properties array when a column contains a node or relationship. +[ValueType](https://github.com/FalkorDB/FalkorDB/blob/ff108d7e21061025166a35d29be1a1cb5bac6d55/src/resultset/formatters/resultset_formatter.h#L21-L28) indicates the data type (such as Node, integer, or string) of each returned value. Each value is emitted as a 2-array, with this enum in the first position and the actual value in the second. Each property on a graph entity also has a scalar as its value, so this construction is nested in each value of the properties array when a column contains a node or relationship. ## Decoding the result set @@ -155,7 +155,7 @@ Each is emitted as a 2-array: 2) column name (string) ``` -The first element is the [ColumnType enum](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h), which as of FalkorDB v2.1.0 will always be `COLUMN_SCALAR`. This element is retained for backwards compatibility, and may be ignored by the client unless FalkorDB versions older than v2.1.0 must be supported. +The first element is the [ColumnType enum](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h#L14-L19), which as of FalkorDB v2.1.0 will always be `COLUMN_SCALAR`. This element is retained for backwards compatibility, and may be ignored by the client unless FalkorDB versions older than v2.1.0 must be supported. ### Reading result rows @@ -184,7 +184,7 @@ Our query produced one row of results with 3 columns (as described by the header Each element is emitted as a 2-array - [`ValueType`, value]. -It is the client's responsibility to store the [ValueType enum](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h). FalkorDB guarantees that this enum may be extended in the future, but the existing values will not be altered. +It is the client's responsibility to store the [ValueType enum](https://github.com/FalkorDB/FalkorDB/blob/master/src/resultset/formatters/resultset_formatter.h#L21-L28). FalkorDB guarantees that this enum may be extended in the future, but the existing values will not be altered. The `ValueType` for the first entry is `VALUE_NODE`. The node representation contains 3 top-level elements: @@ -290,6 +290,10 @@ CALL db.propertyKeys() YIELD propertyKey RETURN propertyKey SKIP [cached_array_l Though the property calls are quite efficient regardless of whether this optimization is used. +As an example, the Python client checks its local array of labels to resolve every label ID [as seen here](https://github.com/RedisGraph/redisgraph-py/blob/d65ec325b1909489845427b7100dcba6c4050b66/redisgraph/graph.py#L20-L32). + +In the case of an IndexError, it issues a procedure call to fully refresh its label cache [as seen here](https://github.com/RedisGraph/redisgraph-py/blob/d65ec325b1909489845427b7100dcba6c4050b66/redisgraph/graph.py#L153-L154). + ## Reference clients All the logic described in this document has been implemented in most of the clients listed in [Client Libraries](/getting-started/clients).