Skip to content

PuppyGraph Releases

PuppyGraph 1.15.1

2026-10-17

  • [Breaking] Change the default endpoint mode of edges back to TRUST, removing the automatic STRICT detection added in 1.15.0. Sides already set to STRICT keep it.

PuppyGraph 1.15.0

2026-10-14

  • Cypher: Fix incorrect results from CALL { … } subqueries. Consecutive subqueries ran only the last one, variables bound before a CALL were not visible after it, and an aggregate inside the body also counted the outer rows. A variable name reused inside the body without being imported bound to the outer variable. Each subquery now runs, outer variables stay in scope, an aggregate counts only the body's rows, and a reused name is a new variable inside the body.
  • Cypher: Fix wrong counts from size() and other list functions over a filtered list comprehension. They counted the elements the filter removed, so size([x IN [1, 2, 3] WHERE x > 1]) returned 3. It now works correctly, returning 2 for the example.
  • Cypher: Fix wrong property values and query failures from WITH DISTINCT after a variable-length pattern. It could return another property's value for a node, or fail when the node or relationship had a map property. It now returns the node's own properties.
  • Cypher: Fix extra rows from a USING {logicalPartition: …} graph algorithm call with collectPath. It returned rows for path elements outside the partition. It now returns only elements inside the partition.
  • Cypher: Improve the memory use of a MATCH with comma-separated patterns whose node patterns come before the pattern that connects them, such as MATCH (a:Person {id: 1}), (b:Company), (a)-[:WORKS_AT]->(b). Such a query could run out of memory when the labels read the same table.
  • Improve the performance of reading the properties of edges whose label has no attributes.
  • Fix intermittent query errors from the gRPC transport. Queries could return errors at random, such as Encountered end-of-stream mid-frame.
  • Fix Gremlin local programs using a stale graph. After a schema or catalog change, programs run with graph.program(...), such as the shortest path programs, could keep running on the graph from before the change for up to 24 hours. They now use the current schema and catalogs.
  • Support renaming a node or edge label in place, on the Graph page or with CALL puppy.schema.renameNode and CALL puppy.schema.renameEdge in Cypher. Renaming requires GRAPH:write. Queries that use the old label stop matching it.
  • [Breaking] Add a STRICT endpoint mode for edges whose source table has rows with no matching source or target node. In STRICT mode, queries exclude those edges. The previous behavior, TRUST, assumes every endpoint exists, so id-only queries such as count(*) could count edges that point to missing nodes. In 1.15.0, adding or editing an edge, or changing a node table it connects, checks the edge's source data and sets a side to STRICT when it finds missing endpoints, so query results can change and those schema changes are slower. To keep TRUST for an edge, set "fromNodeIntegrity": "TRUST" or "toNodeIntegrity": "TRUST" on it in the schema, or choose Trust for the endpoint on the Graph page.
  • Fix wrong values from node and edge properties mapped with sourceExpression. A query that traversed a relationship, or ran after a schema re-upload, could return another column's value, no rows or an error. It now returns the mapped values.
  • Fix schema upload errors when a sourceExpression reads a field named with a reserved word. The upload was rejected with an error that did not name the field. It now succeeds, and an upload that cannot parse a field names it.
  • Support importing an Apache Ossie model written at the top level of the file (Ossie 0.2.0), as well as under semantic_model.
  • [Breaking] Mask catalog credentials as ****** in the responses of POST /ui-api/convertSchema and of a successful POST /ui-api/catalog. To migrate a 0.x schema, upload it to POST /schema directly, because a catalog created from convertSchema output would get ****** as its credentials. See Migrating from v0.
  • Support choosing how POST /schema converts an uploaded 0.x schema with the createLocalTable and defaultDataSource query parameters. The Web UI now says when it converted an uploaded 0.x schema and offers the converted schema for download, with its catalog credentials masked.
  • [Breaking] Reject a schema upload that adds an invalid local table, for example one whose enabled data source maps no fields. Such an upload was accepted, and the table then did not load. The error names the table. Schemas already stored are not checked again. To turn the check off, set GRAPH_FEATURES=feature.engine.validateLocalTableOnCreate:false.
  • [Breaking] Fix local-table columns added by a schema upload being rejected or left empty. An upload that added a column with its source mapping was rejected. It now succeeds. An upload that added a column without a source mapping was accepted, and the column was filled with nulls. It is now rejected.
  • Fix periodicLoad changes not being applied on local tables. A schema upload that changed an existing local table's periodicLoad reported success but did not apply the change. It now applies it. An invalid periodicLoad is not applied, and the upload warns.
  • Fix stale periodic local table loads running. A load that was already queued still ran after periodic loading was turned off, or after the table was removed and added again. It no longer runs.
  • Support row-level security filters on the input tables of a node's union data source. The filters now apply inside the union.
  • Support graph algorithms on a graph with row-level security. They run only over the rows the user is entitled to. Gremlin iterative traversal programs run with graph.program(...) are still not available under row-level security.
  • [Breaking] Require the new SECURITY:write permission to add, change or remove row-level security in a graph schema, or to clear a graph that has it. Of the built-in roles, only Admin has it. Users with the Admin role who signed in before the upgrade must sign in again to get it.
  • Restrict PuppyGraph AI's source-table profiling and the Web UI's Fill from data and Count rows, which read source tables directly. A user without GRAPH:write, such as Analyst or UserAdmin, can now use them only on tables the graph schema maps. When row-level security is enabled, these reads are not filtered by it, so only Admin can use them on a catalog that row-level security names. See RBAC.
  • Fix row-level security not filtering local-table copies. A label that reads a local-table copy of a filtered table returned every row. The filter now applies to it. If it cannot, the upload is rejected and queries on a stored schema are refused; add a tableSecurityFilter for the local table, or map the filter column, and upload again.
  • Fix Gremlin edge reads exposing hidden nodes under row-level security. g.E(), outE(), inE() and bothE() returned edges whose source or target node the user cannot see. They no longer do.
  • Fix row-level security configuration being lost on schema edits. Every edit to a single node, edge or local table, in the Web UI or with a CALL puppy.schema.* procedure, removed the row-level security configuration. It is now kept.
  • Fix row-level security leaks and stale column values during a schema update. Queries that read two labels mapped to the same table while a schema update was applied could return rows outside the user's row-level security entitlements, or a remapped column's previous value. They now follow the schema they were planned with.
  • [Breaking] Fix missing or partly filtered rows when row-level security names something that does not exist, such as a filter column the label lacks or a local table an entitlement source needs. A schema upload with such a reference was accepted, and the label returned no rows, or rows filtered on only some columns. The upload is now rejected. A schema already stored this way still loads with a warning, and queries on a label whose filter names a missing column return an error until you correct the schema and upload it again.
  • Web UI: Add an AI Providers tab in Settings where a user with the Admin role can add AI providers for all users, choose the default provider, and require users' own API keys.
  • Fix PuppyGraph AI requests to OpenAI being rejected. With OpenAI's API (AI_API_STRUCTURE=openai_style), requests to the latest OpenAI models were rejected with an HTTP 400 error. They now work, including requests that use tools on reasoning models.
  • Fix PuppyGraph AI chat being rejected by an OpenAI-compatible endpoint that does not serve the default model. When AI_MODELS was not set, the endpoint rejected every chat request. PuppyGraph AI now offers the chat models the endpoint lists.
  • Stop Cypher queries that PuppyGraph AI runs from changing the graph schema or local data. Schema changes go through the chat's approval cards. This applies when Gremlin and Bolt authentication (GREMLINSERVER_AUTHENTICATION_ENABLED and BOLTSERVER_AUTHENTICATION_ENABLED) are enabled, because only then are permissions checked on each query. Queries from drivers and the Query page are unaffected.
  • Stop PuppyGraph AI from showing the list of connected catalogs to a user without CATALOG:read, and from writing the SQL of a source-table read that returned an error to the error log.
  • Stop PuppyGraph AI from sending a chat message that looks like it contains a password, key or token. The chat shows the part of the message that looks like a credential, masked, so you can remove it.
  • Snowflake Native App: Offer Claude Haiku 4.5 in PuppyGraph AI in place of the retired Claude 3.5 Sonnet. When the account cannot use the configured Cortex model, say so instead of asking for the SNOWFLAKE.CORTEX_USER grant.
  • Web UI: Improve the node and edge count cards on the Dashboard for large graphs. They count one label at a time for up to a minute, show a running total, and offer Count the rest, instead of running one count over the whole graph. For a whole-graph count, add a Text card with MATCH (n) RETURN count(n).
  • Add GET /readyz on port 8081, which reports whether PuppyGraph is ready to serve queries, and a container HEALTHCHECK based on it.
  • Improve the handling of schema upload or catalog creation requests while PuppyGraph is still starting. They now wait up to 60 seconds for the leader node, then return a retryable 503 instead of an error.
  • Keep users, settings and saved schemas when a Docker container is recreated on the same volume. When STORAGE_PATH_ROOT is set and CONTROLPLANE_REGISTRY_STORAGEPATH is not, the controlplane registry is now stored at $STORAGE_PATH_ROOT/registry.db. To roll back to an earlier release after the registry was created at the new location, first set CONTROLPLANE_REGISTRY_STORAGEPATH=$STORAGE_PATH_ROOT/registry.db, or the earlier release starts with an empty registry.
  • Fix personal AI API keys left unencrypted at startup. One user's key that could not be encrypted stopped the other users' keys from being encrypted. The others are now encrypted. Startup data migrations name any item they skip in the log and the support bundle, and retry it on every start.
  • Fix removed or decommissioned leader and compute nodes coming back after a controlplane restart. A controlplane restart or failover could undo a node's removal, decommissioning or reactivation. It now persists. Add Node and Remove Node requests that are accepted but not yet complete return HTTP 202 with "status": "pending", and HTTP 503 means the request was not accepted and carries "retryable": true and Retry-After.
  • Fix leader and compute nodes staying down at startup. A node that started before its controlplane was reachable exited after 2 minutes, and a node could stay down after restarting in the same container, for example after docker restart, a crash, or many restarts. A node now waits for the controlplane and starts again after a restart.
  • Fix a compute node crash issue. A compute node could crash when a query that spilled to disk was cancelled.
  • Fix missing configuration in log downloads for a time range. When no restart fell in the range, the download had no record of the configuration in use. It now includes the version and current configuration of the controlplane and every leader and compute node, with secrets left out.
  • Support turning on background data lake metadata refresh with DATALAKE_METADATA_BACKGROUND_REFRESH_ENABLED and setting its interval with DATALAKE_METADATA_BACKGROUND_REFRESH_INTERVAL (default 10m).
  • Web UI: Improve the performance for large JDBC tables with better parallel reading.
  • Improve the performance of queries on Delta Lake tables in a Databricks Unity Catalog catalog.
  • Fix query errors on PostgreSQL and SQL Server catalogs after an upgrade. Queries on catalogs that use the bundled JDBC driver and were created on an earlier release returned an error after an upgrade. Queries on these catalogs now work again.
  • Fix query errors when filtering on mixed-case column names in PostgreSQL and AlloyDB catalogs. A query that filtered on a column such as accountId returned an error. These queries now work.
  • Fix ClickHouse catalog errors on ClickHouse 26.9 and later. Adding the catalog returned an Invalid LZ4 magic byte error. A new catalog now requests uncompressed responses, which also works with earlier ClickHouse versions. An existing catalog gets the fix when you edit and save it.
  • Fix schemas with row-level security saved by 1.13.0 or earlier not loading after an upgrade. 1.14.0 refused to load a schema with a filter on a table that no node or edge reads. Such a schema now loads, and the filter applies once a node or edge reads the table.

PuppyGraph 1.14.0

2026-10-07

  • Cypher: Support node label disjunction (n:A|B) in MATCH and OPTIONAL MATCH.
  • Cypher: Validate queries against the graph schema and warn on unknown labels, undefined properties and relationships the schema never connects. An opt-in strict mode can fail the query on a mismatch instead of only warning.
  • Cypher: Fix date() and datetime() rejecting a Date, DateTime or null argument; previously only a string or map literal argument was accepted.
  • Cypher: Fix paging a path query with ORDER BY ... SKIP ... LIMIT returning some rows on two pages and others on none, when the path comes from an undirected or variable-length pattern.
  • Cypher: Name the mismatched columns in a UNION's "same column names" error, instead of a generic message that didn't say which columns disagreed.
  • Cypher: Stop refusing a variable-length pattern query by default when its walk-budget estimate is over a fixed limit. Set feature.engine.executionPlanner.varLengthUnrollWalkBudget or USING {varLengthUnrollWalkBudget: n} to turn the check back on.
  • Support more than one entitlement source in row-level security: rowLevelSecurity.namedEntitlementSource[] lets different tables bind to different entitlement tables through entitlementSourceName. The existing single entitlementSource keeps working unchanged.
  • [Breaking] Reject a row-level security filter whose table no scan reads, or that sits on an input of an active union data source, instead of silently leaving that table unfiltered.
  • Fix row-level security not applying when a query reads only an entitled node's id across a relationship, for example RETURN a.account_id, count(a), or Gremlin out().values('account_id'), which could return ids for rows the user is not entitled to.
  • Validate an unchanged schema re-upload the same way as a changed one, instead of reporting success without checking it.
  • Name the fields a rejected schema upload could not apply, and how to fix them, in the API error and the upload dialog.
  • Name the time budget that lapsed when a schema upload times out, and stop a batch validation still running after its caller has given up.
  • Support uploading a 0.x schema through POST /schema by converting it to the 1.x format automatically, instead of failing.
  • [Breaking] Include SCD2 records with a NULL effective time, and records with a NULL expiration time when no expiration sentinel is configured, in point-in-time queries instead of excluding them.
  • Fix a transaction timeout set on an explicit Bolt transaction leaking into a later query on the same pooled connection, which could cancel that query early or let it run longer than the server default.
  • [Breaking] Refuse impersonated_user on a Bolt connection when Bolt authentication is off, instead of running the query as that user with no check.
  • Add AI Chat support for Snowflake Cortex in the Snowflake Native App, with no external API key or network egress required.
  • Encrypt personal AI API keys at rest and scrub them from AI provider error messages.
  • Web UI: Show Cypher schema-validation warnings in the PuppyGraph AI chat results table.
  • Retry an AI provider's 429 or 503 response with backoff instead of failing the chat turn immediately.
  • Show the actual reason an AI_* setting is misconfigured, instead of a generic failure.
  • Fix PuppyGraph AI failing after its first tool call on Gemini 3 models behind the OpenAI-compatible endpoint.
  • Honor a periodic local table load's configured interval across submission failures and controlplane restarts.
  • Forward a container stop signal to the PuppyGraph binaries, so docker stop and a Kubernetes pod termination shut PuppyGraph down gracefully instead of waiting out the timeout and being killed.
  • Fix a Google Lakehouse REST catalog connection breaking when a stale Google Credentials File Path or Google Auth Scopes value overrode application-default credentials; remove both fields from the catalog form.
  • Improve the performance of an ungrouped MIN/MAX aggregate on a JDBC data source by pushing it down to the source instead of reading the whole column.
  • Gremlin: Fix CVE-2026-54399, CVE-2026-54428, CVE-2026-54512, CVE-2026-54513, CVE-2026-68497, CVE-2026-89407, CVE-2026-89425, CVE-2026-91776 and CVE-2026-91777.

PuppyGraph 1.13.0

2026-09-30

  • Cypher: Disable by default a query optimization that could return incorrect results on queries with LIMIT.
  • Cypher: Ignore an unrecognized query directive option with a warning instead of failing the query.
  • Cypher: Fix IS NULL and IS NOT NULL failing on a list or map parameter.
  • Cypher: Fix queries failing when they aggregate after a variable-length path or carry a collect() result into a later aggregation across WITH clauses.
  • Fix a node or edge mapped using whereClause returning rows outside its filter when a query also reads another node or edge mapped to the same table.
  • [Breaking] Reject graph algorithms while row-level security filters any table, so their results cannot include rows the user is not allowed to see.
  • Improve the performance of CALL puppy.schema.getSchema() on a large schema and of queries with long string literals.
  • Reduce the load that automatic statistics collection puts on a JDBC data source.
  • Web UI: Consolidate AI features into PuppyGraph AI, one page at /ai for building a graph schema and asking questions about your graph.
  • Support connecting a data source from PuppyGraph AI, which opens the catalog dialog with its settings prefilled.
  • Default PuppyGraph AI to Claude Opus 5.5, previously Claude Opus 4.8. To use a different model from your model provider, set AI_MODELS.
  • Support exporting a graph schema as an Apache Ossie model, and rename the OSI import to Apache Ossie.
  • Support any S3-compatible storage service, with or without path-style access, as an export location for query results.
  • Gremlin: Further harden script processing.
  • Fix CVE-2026-35189, CVE-2026-54872, CVE-2026-75805, CVE-2026-75806, CVE-2026-77696 and CVE-2026-84782.

PuppyGraph 1.11.2

2026-09-25

  • Cypher: Disable by default a query optimization that could return incorrect results on queries with LIMIT.

PuppyGraph 1.12.0

2026-09-24

  • Cypher: Improve query performance for nodes and edges mapped using whereClause.
  • Cypher: Show a breakdown of query preparation time by phase in query profiles.
  • Cypher: Improve the accuracy of the data source reported for each scan in query profiles.
  • Process data lake metadata in parallel by default. To keep the previous behavior, set DATALAKE_METADATA_PARALLEL_PROCESSING_ENABLED=false before upgrading.
  • Reject an invalid periodic load schedule, such as an interval under 30 seconds, when creating a local table, which previously left the table loading on a different schedule or never loading.
  • Web UI: Add an Auto Graph Builder action to the Graph page toolbar that opens AI chat.
  • Web UI: Add Analyze settings to the node and edge editors for choosing which columns to group statistics by.
  • Fix a Bolt query result being held entirely in memory when the client reads or discards all remaining records at once, as Neo4j drivers do on consume() and when closing a session.
  • Fix an upgrade from a version before 1.9.0 leaving the controlplane's metadata storage at about twice its size. Upgrading to 1.12.0 reclaims the space, and deployments first installed on 1.9.0 or later are not affected.
  • Stop an all-in-one container when its controlplane or node agent exits, so the container's restart policy brings it back instead of leaving the other process running alone. See Data Persistence Options to keep your data across restarts.
  • Prefix Gremlin server lines in docker logs and kubectl logs with [SERVER]. Update any log pipeline that parses these lines.
  • Fix CVE-2026-8763, CVE-2026-13506 and CVE-2025-8916.

PuppyGraph 1.11.1

2026-09-18

  • Fix a periodic statistics refresh exhausting a compute node's memory and impacting the queries running on it.
  • Fix a failed check for existing statistics causing every table to be collected again.

PuppyGraph 1.11.0

2026-09-16

  • Cypher: Fix certain queries that combine WITH and UNION failing to execute.
  • Cypher: Fix EXPLAIN on a CALL db.*, dbms.*, util.* or db.schema.* statement performing the call instead of only planning it.
  • Cypher: Fix shortestPath() and allShortestPaths() returning no result when a valid path exists, on a graph that uses a logical partition, an SCD2 snapshot time, or row-level security.
  • Cypher: Improve query performance for queries over large schemas.
  • Limit the time query planning spends fetching data internally, and keep those fetches within the rows the query itself may read.
  • Reduce the overhead of returning a query profile.
  • Add authentication with a token from your own identity provider, configured under Settings → SSO Configuration.
  • Support propagating the signed-in user's identity to Snowflake and Elasticsearch with the new catalog-level identityPropagation setting.
  • Limit what AI chat offers to the actions the signed-in user may perform, and explain a restriction instead of suggesting alternatives that would be rejected.
  • Fix an Iceberg REST catalog using OAuth2 becoming unqueryable a few hours after startup.
  • Bound how stale Iceberg table metadata can become while catalog refreshes keep failing.
  • Fix a local table refresh failing with a memory limit error.
  • Validate schema changes sequentially by default, working around a race in concurrent source metadata processing that could fail a schema upload.
  • Web UI: Support downloading logs for a chosen time range, component set and cluster nodes, keeping a troubleshooting log archive small.
  • Web UI: Move the export location management page under Settings.
  • Web UI: Explain why a catalog performance setting is unavailable, and fix the cache-to-disk default shown on clustered deployments.
  • Keep a Bolt connection alive with NOOP messages while a long query runs.
  • [Breaking] Mask catalog credentials in the schema download and the catalog API. A credential-bearing backup now comes from GET /ui-api/schema/backup, which requires CATALOG:write.
  • [Breaking] Reject a catalog written through the API that sets a data cache TTL or disk option without enabling the cache.
  • Gremlin: Further harden script processing.
  • Fix CVE-2026-75595 in the bundled Netty library.

PuppyGraph 1.10.1

2026-09-10

  • Fix a rolling upgrade to 1.10.0 stalling on the first query node when that node could not start its query engine.

PuppyGraph 1.10.0

2026-09-09

  • Cypher: Enhance cost-based query planning to improve query performance, particularly on multi-hop traversals, variable-length patterns, and queries over graph elements that map to many tables.
  • Cypher: Fix an unbounded traversal returning no path or an incomplete result after reaching an internal execution limit. It now asks for an upper bound instead.
  • Cypher: Accept query parameters in the parameters field of a /submitCypher request.
  • Cypher: Fix EXPLAIN on a CALL puppy.schema.* statement performing the schema change instead of only planning it.
  • Cypher: Fix CALL puppy.schema.insertLocalTableRows reporting success while the inserted rows stayed invisible when row-level security was enabled.
  • Avoid duplicate statistics collection when a schema is applied across a cluster.
  • Stop offering manual statistics collection on catalogs that use ADBC connectivity, which does not support it.
  • Add the Leiden community detection algorithm, available as CALL algo.leiden(...) in Cypher and LeidenProgram in Gremlin.
  • Speed up Louvain, stop it returning communities that are not internally connected, and make unseeded runs reproducible.
  • Speed up Label Propagation and make it deterministic, where two runs of the same query could previously return different results.
  • Fix Connected Component Finding failing with node output enabled on graphs whose labels have different numbers of ID columns.
  • Speed up first-time uploads of large schemas.
  • Improve query planning for JDBC data sources by caching table and column metadata by default.
  • Stop an all-in-one deployment with no mounted data volume from filling the host's container storage with cached data files as queries run. In-memory caching is unchanged.
  • Fix an issue where a query that read a missing Iceberg data file kept the stale metadata that caused it. The stale entry is now dropped.
  • [Breaking] Query result exports now go only to export locations registered by an administrator, and a query names a registered location instead of supplying its own storage type, endpoint, or credentials. An existing export query that passes those options will fail.
  • [Breaking] The catalog troubleshooting tool now requires CATALOG:write, where it previously needed only CATALOG:read. Roles without it, including Viewer, no longer see the troubleshooting panels.
  • Gremlin: Harden script processing.

PuppyGraph 1.9.0

2026-09-02

  • Cypher: Improve first-query planning with better statistics collection from remote data sources.
  • Cypher: Show the query execution node information and Iceberg table metadata staleness in query profiles.
  • Cypher: Fix LIMIT returning too many rows for certain unordered DISTINCT queries.
  • Web UI: Group graph schema history by upload, show the affected graph elements and upload duration, and add server-side search, filtering, and pagination.
  • Allow schema uploads to update embedded catalog configurations when explicitly enabled.
  • Paginate schema-version API responses and return action_payload as JSON strings through Cypher and Gremlin.
  • Add PuppyGraph version information to the default partner attribution token for BigQuery JDBC connections.
  • Strengthen operation-level authorization by using control-plane-signed user identity context. Clients still using authentication tokens issued before an upgrade may need to sign in again after every node has been upgraded.
  • Gremlin: Harden script processing further. Computed Groovy subscript expressions are no longer accepted in submitted queries; constant list and map subscripts remain supported.
  • Fix CVE-2026-56854.

PuppyGraph 1.8.1

2026-08-29

  • Restore the default local cache disk quota ceiling from 30% to 100%, preventing upgrades from unexpectedly reducing cache capacity.

PuppyGraph 1.8.0

2026-08-28

  • Add the JDBC data cache with per-catalog Web UI configurations, an optional local-disk tier, and percentage or absolute-size disk limits. Deployments using adaptive data caching must enable it on each JDBC catalog after upgrading.
  • Improve error messages for Iceberg REST catalog failures.
  • Cypher: Add a per-query option to limit query execution to a specified number of compute nodes.
  • Cypher: Improve the performance of queries with a limit.
  • Cypher: Show whether lakehouse metadata was processed in parallel in query profiles.
  • Gremlin: Fix groupCount() over empty input returning no result instead of an empty map.
  • Enforce operation-level authorization for control-plane requests.
  • Fix runtime feature updates not taking effect and incorrectly reporting success.
  • Improve service startup reliability on slower nodes.
  • Add metrics for workers acquired per query and worker shortfalls.
  • Fix latency metrics continuing to report stale percentiles after queries stop.

PuppyGraph 1.7.1

2026-08-26

  • Fix scanning UUID columns in ClickHouse catalogs.
  • Fix CVE-2026-39821 in the bundled BigQuery driver.

PuppyGraph 1.7.0

2026-08-21

  • Support updating a connected catalog's configuration without recreating the catalog.
  • Fix querying Iceberg catalogs that reach S3 through an interface VPC endpoint.
  • Cypher: Add schema procedures for local tables, data loading, and statistics.
  • Cypher: Return query results faster over Bolt and in the Web UI.
  • Cypher: Fix a timed-out query returning a result instead of a timeout error.
  • Cypher: Optimize queries over connected external tables.
  • Improve query throughput under concurrent load.
  • Improve node stability under memory pressure, with clearer errors when a memory limit is exceeded.
  • Fix a resource leak in data export tasks.
  • Further harden Gremlin script processing.
  • Fix CVE-2026-39821.

PuppyGraph 1.6.0

2026-08-15

  • Fix an intermittent crash that could interrupt running queries and node startup.
  • Prevent one unhealthy node from stalling schema distribution or overloading the rest of the cluster.
  • Fix nodes answering queries with empty results when the service restarts without successfully loading the current schema.
  • Reject duplicate node and edge labels when adding graph elements.
  • Enhance the error message for object storage failures.
  • Improve the memory usage efficiency when streaming large query results.
  • Fix an export continuing to hold server resources after it finishes.
  • Web UI: Show the catalog troubleshooter as soon as a catalog type is selected.
  • Web UI: Offer the AI assistant when building a graph schema or adding nodes and edges.
  • Web UI: Fix the Cancel All button on the Query page.
  • Harden Gremlin script processing.
  • Enforce operation-level authorization for submitted queries.

PuppyGraph 1.5.0

2026-08-08

  • Enhance support for view endpoints in Iceberg REST catalogs, with a single setting that controls how views are read.
  • Improve support for Snowflake Horizon catalogs, with clearer suggestions when listing tables fails.
  • Surface Iceberg metadata cache stats in the query profile.
  • Experimental: Allow setting up periodic sync for local tables, with a per-table sync interval and optional recent-partition options.
  • Cypher: Accept query parameters in algo.* procedure arguments.
  • Cypher: Fix keys(), properties(), tail(), and reverse() over map arguments and collect() results.
  • Cypher: Fix nested field projection when the same attribute name has different types across labels.
  • Cypher: Fix a query optimization that could silently return incorrect results on multi-hop queries.
  • Improve the stability of graph algorithms such as WCC, PageRank, and Louvain.
  • Fix certain cluster settings not taking effect after the initial cluster setup.
  • Fix queries failing during a leader shutdown.
  • Rotate and cap process logs to prevent nodes from running out of disk space.
  • Fix memory growth on leader nodes after failed queries.

PuppyGraph 1.4.0

2026-07-31

  • Cypher: Choose local or external data sources for individual graph elements in a query, without changing the graph schema.
  • Cypher: Add adaptive query execution placement to reduce unnecessary work on large clusters.
  • Cypher: Fix failed requests that could leave managed transactions open.
  • Support nested Iceberg namespaces when importing Open Semantic Interchange (OSI) semantic models.
  • Improve planning performance for queries on Iceberg views.
  • Refactor the configuration for Iceberg metadata cache with clearer option names and human-readable size values.
  • Add support for both Anthropic-style and OpenAI-style APIs in the built-in AI chat.
  • Web UI: Prevent schema upload and OSI import dialogs from closing when the backdrop is clicked.
  • Harden the Iceberg catalog troubleshooter against untrusted configuration.
  • Fix CVE-2026-39892 and CVE-2026-27459.

PuppyGraph 1.3.0

2026-07-24

  • Improve schema consistency across the cluster. When upgrading a cluster from 1.2.x, schema changes are temporarily unavailable until every node finishes upgrading, then resume automatically.
  • Significantly speed up schema uploads for large schemas.
  • Add Snowflake query tags to identify PuppyGraph-issued queries in Snowflake Query History.
  • Improve query profile resilience by returning a partial profile when a profiled query times out, instead of no profile at all.
  • Cypher: Fix CASE expressions and Bolt Date results that could be corrupted.
  • Cypher: Fix scalar variable comparisons using = and <>.
  • Support Iceberg struct field names containing a colon (:).
  • Fix querying properties unaffected by a dropped column in Iceberg data sources.
  • Fix filter condition pushdown on PostgreSQL data sources.
  • Fix incorrect LONG values returned when querying some JDBC data sources such as MongoDB.
  • Fix a query failure caused by hidden system columns in SQL Server data sources.
  • Support connecting to Elasticsearch 9.x catalogs.
  • Fix CVE-2025-66614, CVE-2026-24734, CVE-2026-55956, and CVE-2025-69720.

PuppyGraph 1.2.0

2026-07-17

  • Add batch loading for multiple local tables.
  • Web UI: Allow Cypher and Gremlin queries to run concurrently.
  • Cypher: Fix comma-separated patterns in a single OPTIONAL MATCH clause.
  • Add headless SSO user impersonation and optional enforcement for query impersonation or row-level security.
  • Allow administrators to choose the model version for each model tier.
  • Preserve the requesting user's identity for Cypher queries run by the assistant.
  • Add opt-in request logging for AI user messages.
  • Improve cluster recovery after simultaneous leader failures and prevent stale leaders from disrupting a live cluster.

PuppyGraph 1.1.0

2026-07-09

  • Cypher: Add a per-query option to control maximum path-scan parallelism.
  • Cypher: Add an optimization that speeds up lookup queries across multiple connected external tables.
  • Cypher: Improve path-query planning and first-query startup performance on graphs with many labels.
  • Cypher: Optimize literal UNWIND lists.
  • Cypher: Support equality comparisons between lists.
  • Cypher: Fix UNWIND range() and aggregate type handling.
  • Cypher: Fix DISTINCT and collect() projections containing NULL.
  • Web UI: Make query warnings collapsible.
  • Web UI: Add request logging.
  • Web UI: Keep Data Sources and Field Mappings in sync when adding or removing node and edge fields in the schema.
  • Improve schema upload performance when removing multiple attributes from a label.
  • Fix Iceberg REST catalog creation for Databricks Unity Catalog in the Web UI.
  • Fix re-adding instances in cluster deployments.
  • Fix analyze operations for external tables with long names.

PuppyGraph 1.0.0

2026-06-29

PuppyGraph 1.0.0 is the first stable release in the 1.0 series. It makes graph creation and operations more flexible through AI-assisted workflows, relaxed source-table requirements, incremental local-table management, enterprise access controls, and centralized cluster management.

Upgrading from PuppyGraph 0.x

PuppyGraph 1.0 introduces a new graph schema format, new local table management APIs, and a new cluster architecture. The Web UI can convert a legacy 0.x schema during upload, but custom automation and deployment configuration do not migrate automatically. Review Migrating from v0 and Cluster Deployment before upgrading. Contact PuppyGraph support before upgrading a production cluster.

AI-assisted graph building and querying

  • Add the built-in AI chatbot. It can inspect connected catalogs, sample and profile data, propose a graph schema, and apply approved schema changes.
  • Support natural-language questions over the active graph, with generated graph queries and results shown in the Chat page.
  • Add documented integration paths for external AI applications through MCP, openCypher, and Gremlin.

See Built-in AI Chatbot and AI Integrations.

Graph modeling and schema management

  • Introduce the v1 graph schema, with first-class catalogs, nodes, edges, local tables, and row-level security. A node or edge can read from an external table, a local table, or a union of multiple source tables.
  • Redesign the Graph page for live schema editing. Add, edit, or remove nodes and edges without re-uploading the complete schema, inspect schema history, and switch graph elements between external and local data sources.
  • Automatically detect and convert legacy 0.x schemas during upload. Upload controls let you query external data directly, load local tables, or load and switch the graph to local data.
  • Add one-way import of Open Semantic Interchange (OSI) semantic models from JSON or YAML.
  • Make graph modeling more flexible by relaxing source-table structure requirements, so more table layouts can map directly to nodes and edges.
  • Improve schema validation and update safety with optional preflight validation, clearer errors, versioned changes, and best-effort rollback after a failed update.

See Graph Modeling and Data Sources and Local Tables for the new schema model.

Local tables and data loading

  • Replace the 0.x per-element cache configuration with explicit local tables that can be shared and managed independently, so graph schema updates no longer force every local table in the schema to reload.
  • Create local tables from external or union-backed graph elements, load data in the background, and switch graph elements to the local copy after loading.
  • Add controls for load status and history, cancellation, partition inspection and removal, statistics collection, and manual row insertion.
  • Add per-partition data loading so changed partitions can be refreshed without reloading an entire local table.

See Managing the Graph for local table loading, partitions, and operations.

Security and governance

  • Add OAuth/OIDC single sign-on, including identity-provider group mapping for role assignment.
  • Enable role-based access control by default with five built-in roles. Permissions are enforced consistently across the REST API, Bolt, and Gremlin.
  • Add service accounts, user impersonation, and an administrative audit log.
  • Add row-level security backed by entitlement tables. Per-user filters apply automatically to every source-table scan in Cypher and Gremlin, including intermediate traversal steps.
  • Establish query impersonation support for carrying SSO identities into source-side access-control policies, with Snowflake as the first supported integration.

See Security for SSO, RBAC, and row-level security configuration.

Querying and analytics

  • Expand Cypher syntax support in preparation for GQL compatibility.
  • Improve EXPLAIN and PROFILE output and add human-readable plan rendering in the Web UI.
  • Surface query warnings so users can identify likely mistakes, such as missing labels that would otherwise return no rows.
  • Make query cancellation handling more efficient.
  • Improve query planning and execution performance.

See Querying for Cypher and Gremlin guides.

Cluster architecture and deployment

  • Introduce a dedicated controlplane that centralizes node registration, cluster discovery, membership management, and schema distribution.
  • Add cluster management to the Web UI.
  • Expand Helm-based deployment, rolling-upgrade, persistent-volume, and multi-architecture support.
  • Improve readiness checks and automatic recovery from transient cluster failures.

See Cluster Deployment and the Helm Chart Installation Guide.

Data source connectivity

  • Add Google Cloud Lakehouse Iceberg connectivity.
  • Add Databricks JDBC connectivity.
  • Switch the default BigQuery connection to Google's native JDBC driver.
  • Add Snowflake External OAuth authentication.
  • Add SQL Server Kerberos/Windows Authentication and Azure AD service principal authentication.
  • Add PostgreSQL Azure AD service principal authentication.
  • Add Azure workload identity support for Azure Data Lake Storage Gen2.
  • Add AWS SigV4 authentication for Iceberg REST catalogs.

See Connecting for data-source setup guides.

Troubleshooting and observability

  • Add connection troubleshooters for common data sources.
  • Expand Prometheus metrics across cluster roles, Bolt, Gremlin, JVM memory, JDBC connection pools, component health, and query latency.
  • Improve credential redaction, schema and query diagnostics, and error messages throughout the Web UI and APIs.

See Monitoring for health checks and metrics configuration.

PuppyGraph 0.118

2026-04-12

  • Cypher: Improve performance and resource usage by terminating limited queries earlier and more aggressively.
  • Cypher: Improve the error message for queries with unbounded variable-length relationships (e.g., [*] or [*1..]) to include the variable name and suggest a bounded alternative.

PuppyGraph 0.117

2026-04-10

  • Fix a bug causing integer values larger than 2^53 to lose precision in Cypher and Gremlin JSON responses.
  • Cypher: Fix a null pointer error during logical partition query building.
  • Cypher: Fix a bug when adding two lists where at least one contains a NULL value.
  • Cypher: Optimize the query performance with pagination filters (SKIP + LIMIT).
  • Cypher: Fix a bug in DISTINCT properties() operations that produced incorrect results.
  • Cypher: Fix a null value error when returning paths or edge lists.
  • Cypher: Make query option keys (USING directives) case-insensitive.
  • Gremlin: Fix a runtime error when using complex groupBy traversals.
  • Fix an issue where the Louvain algorithm produced non-reproducible results when the seed parameter was set, caused by non-deterministic vertex ordering.
  • Fix a bug in the Connected Component algorithm where edges were not deduplicated correctly in certain graph topologies.
  • Support the any snapshot time point in SCD2 logical partition queries to handle optional matches.

PuppyGraph 0.116

2026-03-17

  • Make schema upload errors more descriptive and actionable.
  • Cypher: Fix a bug with pattern matching after using the UNWIND operator on lists.
  • Lower resource usage on the /metrics endpoint.
  • Cypher: Add a configuration option (feature.engine.cypherOutputLimit) to globally limit query results.
  • Fix the cluster disk display in the Web UI for disks larger than 1TB.
  • Validate graph algorithm output variable mappings to prevent errors from non-existent variables.
  • Refine memory allocation for large-memory environments.
  • Cypher: Support list comprehensions on edge lists.
  • Gremlin: Fix a performance regression when the order of keys differs in the projection step.

PuppyGraph 0.115

2026-03-06

  • Add the ability to cancel running queries from the Web UI.
  • Cypher: Fix errors caused by math operators in the WHERE clause in certain scenarios.
  • Resolve a NullPointerException during schema validation when an attribute is missing from the data source table.
  • Support PBES2 encryption for keys when connecting to Snowflake data sources.
  • Upgrade Go to version 1.25.7.
  • Cypher: Support list slicing functions.
  • Cypher: Support the exists function on properties within complex structs.
  • Cypher: Fix a bug in CASE WHEN expressions.
  • Improve server heartbeat availability.
  • Cypher: Optimize traversal branch generation with enhanced pruning logic for better query performance.
  • Cypher: Support using variables as container indexes.
  • Gremlin: Fix a runtime error when comparing Null with expressions.

PuppyGraph 0.106a

2026-03-04

Changes from 0.106:

  • Gremlin: Fix a runtime error when comparing Null with expressions.

PuppyGraph 0.114

2026-02-06

  • Cypher: Fix a bug where the size function, when used with a list of edges, could return an error.
  • Allow additional troubleshooting logs for the Iceberg table scan process.
  • Gremlin: Fix an issue where unfold().dedup() sometimes threw an error.
  • Make local storage management more resilient to transient cluster startup failures.

PuppyGraph 0.113

2026-01-30

  • Fix a bug that caused the Query page in the Web UI to crash.
  • Fix an issue where logical partition filtering was applied in wrong order, leading to incorrect validation results.
  • Update libxml2 to version 2.9.13+dfsg-1ubuntu0.11.

PuppyGraph 0.112

2026-01-21

  • Fix a race condition that could trigger unnecessary server restarts during server startup.
  • Add experimental support for upsert operations in the local cache.
  • Fix an issue where the partition status is absent from the local cache details.
  • Fix an issue where Cypher queries in the web UI fail when Bolt server authentication is enabled.
  • Fix an issue where saving the schema fails after updating it in the web UI schema editor.
  • Allow disabling the canvas visualization to reduce GPU load.
  • Include the graph schema in the log archive to simplify debugging.

PuppyGraph 0.111

2026-01-14

  • Gremlin: Apply security hardening improvements.
  • Decouple QUERY_HISTORY_TO_LOG from QUERY_HISTORY_ENABLED so query history can be written to logs independently.
  • Upgrade org.apache.commons:commons-lang3 to 3.18.0.
  • Fix an issue where schema validation could silently accept certain invalid schemas.
  • Emit a more detailed warning when a logical partition column is missing from the underlying data source table.
  • Add support for PostgreSQL text[] (text array) data types in data sources.

PuppyGraph 0.110

2026-01-09

  • Cypher: Support shortest path functions shortestPath, allShortestPaths and minimumDistancePath.

PuppyGraph 0.109

2026-01-05

  • Raise the schema JSON size cap to 120 MB.
  • Parallelize table information retrieval during graph schema initialization to improve performance.
  • Introduce Cypher query support in the dashboard.
  • Gremlin: Fix a performance issue in aggregation queries caused by the order of attribute selection.
  • Gremlin: Add support for logical operator steps (And, Or, Not) within the Project step.
  • Support filtering with Date/DateTime properties as weights in WCC.

PuppyGraph 0.108

2025-12-22

  • Fix a bug where credential vending for S3 tables did not function as expected.
  • Fix a bug that caused parallel graph traversal to terminate early in some cases, resulting in incomplete results.
  • Cypher: Fix a bug where queries counting aggregated elements (e.g., MATCH p=... RETURN count(nodes(p))) could fail.

PuppyGraph 0.107

2025-12-18

  • Fix an empty catalog name error.
  • Enhance the Connected Component Finding algorithm.
  • Fix an issue that partitionRetentionCount was not properly handled in the graph schema.

PuppyGraph 0.106

2025-12-14

  • Cypher: support node and edge filters as parameters of graph algorithms.
  • Fix an issue where the Schema Builder returns duplicate attribute names on ClickHouse data sources.
  • Fix an issue where a schema fails to upload with long table names.

PuppyGraph 0.105

2025-12-09

  • Cypher: Fix field extraction that yields incorrect results in comma-separated queries.
  • Cypher: Support Any/None/All predicates on Collect(Scalar) and Array.
  • Cypher: Fix a null pointer exception in certain queries.
  • Improve catalog creation for various Iceberg implementations.
  • Add query execution time to the Query page of the Web UI.
  • Fix a display issue on the Dashboard page of the Web UI.
  • Add support for the IN operator in logical partitions.
  • Support path collection in the Connected Component Finding algorithm.
  • Improve the query profile.
  • Improve the stability of the health check endpoint.

PuppyGraph 0.104

2025-11-25

  • Fix an issue with accessing nested semi-structured data types in Iceberg.
  • Gremlin: Fix an issue where the dedup() step did not work correctly in certain cases.
  • Cypher: Fix the issue of inconsistent return results from the bolt server.
  • Cypher: Fix an issue where 64-bit integer constants were not handled properly in queries.
  • Fix an issue with Amazon S3 Tables catalog creation in the Web UI.
  • Upgrade golang.org/x/crypto to version 0.45.0.
  • Rename columns in the "modern" sample graph for improved clarity.

PuppyGraph 0.103

2025-11-23

  • Miscellaneous library updates.

PuppyGraph 0.102

2025-11-21

  • Fix an issue that triggered unnecessary server restarts on uploading an unchanged schema.
  • Fix an issue that prevented some TLS configurations from being applied correctly.
  • Gremlin: Better support for choose() step.
  • Gremlin: Better support for project() step with follow-up steps.
  • Fix a timeout issue occurring during schema uploads.
  • Fix improper enforcement of the JSON schema file size limit.

PuppyGraph 0.101

2025-11-15

  • Increase the size limit of the schema JSON file from 1MB to 100MB.
  • Gremlin: Fix an issue where unfold().dedup() sometimes threw an error.
  • Minor tweaks on Iceberg Catalog connection UI.

PuppyGraph 0.100

2025-11-11

  • Add support for array functions.
  • Enhance schema validation logic and add a UI button to validate the schema using sample data.
  • Support multiple USING directives in Cypher.

PuppyGraph 0.99

2025-11-07

  • Improve the schema validation logic to better handle edge cases.
  • Experimental support for updating graph schema without server downtime.
  • Experimental support for SCD (Slowly Changing Dimensions) Type 2 tables.
  • Cypher: Experimental support for using the same type to query multiple edge labels.
  • Allow setting up query timeout on the query UI.
  • Deprecate the obsolete implementation of the local storage cache. The default implementation was introduced in version 0.55. The feature configuration feature.engine.enableLocalStorageCache is now ignored.
  • Improve the robustness of the local storage cache loading process.
  • Improve the query performance for auxiliary nodes that supply properties of another entity node.
  • Add support for logging slow queries to STDOUT.
  • Update libxml2 to version 2.9.13+dfsg-1ubuntu0.10.
  • Update golang to version 1.25.3.
  • Fix a deployment issue affecting multi-leader cluster when publishNotReadyAddresses configuration is used in Kubernetes.
  • Improve the graceful shutdown process for multi-node cluster deployments.
  • Improve the healthcheck process for multi-node cluster deployments.
  • Fix an issue when dangling edges are not properly handled in certain graph algorithms and cause failure.

PuppyGraph 0.97a

2025-10-24

  • Fix a deployment issue affecting multi-leader cluster when publishNotReadyAddresses configuration is used in Kubernetes.

PuppyGraph 0.98

2025-10-21

  • Improve behavior when attempting to delete a non-existent partition from the local storage cache.
  • Cypher: Preliminary support for query plan and profiling.

PuppyGraph 0.97

Recommended Upgrade Notice

It is recommended to use version 0.97a instead of 0.97 due to a deployment issue affecting certain environments. For more information, see the 0.97a release notes.

2025-10-17

  • Gremlin: Fix an issue where queries could occasionally return null when using a large offset in range().
  • Add support for querying nested complex data types (e.g., map(varchar, array(varchar))) in Iceberg.
  • Improve data type compatibility for Parquet files.
  • Cypher: Add support for logical partitions that require partition-attribute filters on all graph elements, useful for multi-tenant data sources.
  • Enhance the stability of local storage cache loading.

PuppyGraph 0.96

2025-10-13

  • Gremlin: Improve sorting performance for complex data types.
  • Enhance the driver configuration experience for connecting to JDBC data sources.
  • Improve the loading performance of the local storage cache.

PuppyGraph 0.95

2025-10-05

  • Update libxml2 to version 2.9.13+dfsg-1ubuntu0.9.
  • Cypher: Better support for time period (Hour / Day / Month / Year).
  • Add memory usage information to the Web UI.
  • Add support for limiting the maximum length of paths in BFS traversals.
  • Miscellaneous improvements to query planning and execution.
  • Update node to version 20.19.
  • Improve the user interface for creating edges in the Graph Schema Builder.
  • Cypher: Fix the call on db.schema.relTypeProperties().
  • Improve the error detection and handling logic in server startup.
  • Add support for Microsoft SQL Server as a data source.

PuppyGraph 0.94

2025-09-03

  • Improve the multi-hop query performance for graphs with large number of types of nodes and edges.
  • Miscellaneous improvements to query connection handling.

PuppyGraph 0.93

2025-08-27

  • Cypher: Add support for operations on Map types
  • Cypher: Add support for HEAD and LAST functions
  • Cypher: Improve COLLECT() function handling to support container elements
  • Refactor Web UI data source form for Snowflake
  • Update libxml2 to version 2.9.13+dfsg-1ubuntu0.8 to address security vulnerabilities
  • Improve server logging when a connection is closed by the client.

PuppyGraph 0.92

2025-08-20

  • Fix an issue where configuration parameter values were not handled correctly with case sensitivity.
  • Fix an issue where query timeout in result export tasks was not handled properly.
  • Miscellaneous improvements to query planning.
  • Fix an issue with query history when no entries are available.
  • Gremlin: Standardize handling of null IDs — nodes with a null ID in the data source will be returned as null.

PuppyGraph 0.91

2025-08-12

  • Refactor Web UI data source form for Iceberg and Delta Lake data on Databricks
  • Add support for Map data type in Iceberg and Delta Lake data sources

PuppyGraph 0.90

2025-08-09

  • Fix the minComponentSize parameter handling in the Weakly Connected Components (WCC) algorithm.

PuppyGraph 0.89

2025-08-08

  • Cypher: Fix a bolt buffer data issue that could result in query timeouts.
  • Fix a schema handling issue caused by overly long labels.
  • Fix a problem where an invalid schema could leave the server in an unintended state.

PuppyGraph 0.88

2025-08-07

  • Cypher: Add support for referencing properties within struct fields.
  • Cypher: Fix an issue where edge direction was reversed in the response.
  • Improve handling of special characters in values.
  • Enhance performance for queries with a large number of node and edge label types.
  • Various bug fixes and performance enhancements for graph algorithms.

PuppyGraph 0.87

2025-07-30

  • Enhance the Louvain Community Detection algorithm for better performance on large graphs.
  • Optimize schema validation error messages in the Web UI for improved clarity.
  • Cypher: Preliminary support for CALL subqueries.
  • Enable query logging with QUERY_HISTORY_ENABLED=true and QUERY_HISTORY_TO_LOG=true.
  • Improve schema auto-suggestion coverage in the Web UI.

PuppyGraph 0.86

2025-07-18

  • Resolve a startup issue affecting single-leader cluster configurations.

PuppyGraph 0.85

2025-07-17

  • Cypher: Fix an error triggered by certain ORDER BY clauses.
  • Enhance the support for Delta Lake column mapping and deletion vectors.
  • Expand Oauth2 integration for connecting to data catalogs.

PuppyGraph 0.84

2025-07-15

  • Fix an issue where the seedProperty in the WCC algorithm was not properly handled.
  • Cypher: Fix an issue where UNWIND with NULL values could cause an error.
  • Improve the visualization of the nodes, edges, paths, and attributes from the query results in the Web UI.
  • Add an interactive tutorial for building a graph schema in the Web UI.
  • Gremlin: Enhance the support for math functions

PuppyGraph 0.83

2025-07-02

  • Introduce support for query history, configurable via QUERY_HISTORY_ENABLED.
  • Cypher: Enhance handling of COLLECT when used with nodes and edges.
  • Cypher: Add support for UNWIND with lists containing nodes or edges.

PuppyGraph 0.82

2025-06-20

  • Better support for special characters in string values.
  • Introduce a new sample graph: Northwind Graph, derived from the Northwind database.
  • Fix an issue with aggregation functions not correctly processing DateTime values.

PuppyGraph 0.81

2025-06-17

  • Amplify the output scores of the PageRank algorithm to enhance result readability.
  • Cypher: Introduce a parameter QUERY_CYPHER_MAXPARAMETERS to let users define the maximum number of parameters allowed in a Cypher query.
  • Various improvements to logging for better diagnostics and clarity.

PuppyGraph 0.80

2025-06-16

  • Cypher: Fix an issue with OPTIONAL MATCH could cause an error in certain cases.
  • Cypher: Fix an issue that minComponentSize was not properly handled in the Weakly Connected Components (WCC) algorithm.
  • Fix a NullPointerException when checking the local storage cache.

PuppyGraph 0.79

2025-06-11

  • Cypher: Support more math functions like abs(), ceil(), floor(), and round().
  • Remove Graph Notebook from the build. The feature has been deprecated since 0.67 and now it is completely removed.
  • Preliminary support for struct field references.
  • Fix a concurrent race condition in Bolt connection handling.
  • Fix a health check issue with HA deployment.

PuppyGraph 0.78

2025-06-08

  • Cypher: Improve handling of the CASE WHEN clause.
  • Cypher: Add support for the XOR operator.
  • Cypher: Enhance support for list functions.
  • Cypher: Preserve field order in query results to match the original query.
  • Add support for enforcing the edge direction in the Component Finding algorithm.
  • Fix an issue where certain local graph algorithms could throw a NullPointerException when graph elements were NULL.
  • General query performance improvements.
  • Improv support for MongoDB data sources, including MongoDB Atlas and self-hosted servers.
  • Upgrade parquet-java to version 1.15.2.
  • Fix an issue with text length limits not being properly handled in SingleStore.

PuppyGraph 0.77

2025-05-29

  • Cypher: Support properties in pattern condition.
  • Cypher: Support COLLECT DISTINCT operation on scalar values.
  • Fix an issue in the Label Propagation Algorithm where the algorithm did not properly handle the case when some nodes had no neighbors.
  • Better logging for query export operations.
  • Improve the error messages for catalog creation failures.
  • Bump golang to 1.23.8

PuppyGraph 0.76

2025-05-26

  • Cypher: Fix the binary logical operators handling logic.
  • Resolve an issue that caused date and datetime values to be improperly handled when exporting query results.

PuppyGraph 0.75

2025-05-23

  • Gremlin: Fix an issue where the math() step was not properly handling mean() step results.
  • Gremlin: Fix an issue where the branch() step was not properly handling the PredicateTraversal.
  • Cypher: Fix an issue that occurred when nodes or edges in the MATCH clause were referenced in specific ways.

PuppyGraph 0.74

2025-05-21

  • Cypher: Fix an issue where the logical operators were not properly handled when NULL values are present.
  • Cypher: Improve the query optimization for CASE statements.
  • Improve the query performance for composite IDs.
  • Optimize the Web UI performance in the Schema Builder.

PuppyGraph 0.73

2025-05-16

  • Cypher: Improve the performance for filters that involve multiple labels.
  • Introduce a METRICS_AUTH_ENABLED configuration to enable / disable authentication for the metrics endpoint. The value is default to true.
  • Fix an issue where the environment variable substitution in the schema was not working as expected for multi-line values.
  • Add support for exporting query results as Hive tables.
  • Add support for Clickhouse as a data source.

PuppyGraph 0.72

2025-05-11

  • Cypher: Fix an issue where the IN clause type checking was incorrectly applied.
  • Introduce a SCRATCH_PATH_ROOT configuration to mount frequently written temporary files (e.g., for disk spill operations) on an alternative disk.

PuppyGraph 0.71

2025-05-07

  • Cypher: Add support for returning a nested structure (Map) with ORDER and LIMIT.

PuppyGraph 0.70

2025-05-02

  • Cypher: Add basic support for UNION.
  • Cypher: Fix an issue where returning properties with LIMIT incorrectly raised an error.
  • Improve the handling of special control characters.
  • Fix an issue where the metadata cache of Iceberg tables was not properly refreshed.
  • Fix an issue where the Unity Catalog credential vending was not working as expected for a different S3 region.

PuppyGraph 0.69

2025-04-23

  • Fix an issue where excessive logs were generated during the health check process.
  • Bump golang.org/x/net from 0.36.0 to 0.38.0.

PuppyGraph 0.68

2025-04-22

  • Cypher: Fix an issue where date or datetime values were not properly handled in RETURN statements.
  • Cypher: Improve support for list operators and list comprehensions.
  • Cypher: Fix an issue where the LIMIT might return an incorrect number of rows.
  • Cypher: Fix an issue where the LIMIT and ORDER BY clauses might cause an error.
  • Cypher: Fix an issue where some data types were not properly handled and caused null pointer exceptions.
  • Add a configuration for easier setting up user-provided CA certificates for TLS connections.
  • Improve server stability and health check mechanism under multi-node deployment.
  • Fix the schema validator to avoid failing the validation on legit column names.

PuppyGraph 0.67

2025-04-16

  • Disable the embedded Graph Notebook by default. While the Graph Notebook gives a convenient method for running graph queries, a recent security scan has discovered an XSS and an RCE vulnerability in it. Existing customers are strongly encouraged to disable the feature by setting the environment variable ENABLE_GRAPH_NOTEBOOK=false or upgrading to the this version (0.67) of PuppyGraph.

PuppyGraph 0.66

2025-04-03

  • Gremlin: Improve the performance of string map steps.
  • Improve the handling of special control characters.

PuppyGraph 0.65

2025-04-02

  • Cypher: Fix an issue where a query incorrectly raises an error on empty aggregation results.
  • Cypher: Fix an issue where special characters in the data source could cause a query error.
  • Cypher: Improve coverage for collect function.
  • Cypher: Support more temporal functions for datetime and duration.
  • Cypher: Cypher: Fix labels(v) incorrectly returning a string instead of a list and type(e) incorrectly returning a list instead of a string.
  • Schema Builder: Handle elastic search host url properly.
  • Avoid error by casting Decimal data with precision exceeding 38 down to 38.

PuppyGraph 0.64

2025-03-25

  • Cypher: Fix a query issue where no properties are returned if one of them is NULL.
  • Cypher: Add support to list functions like keys(), nodes(), relationships() and range().
  • Gremlin: Fix a query issue where dedup().count() returns an inaccurate result.
  • Gremlin: Fix a query error where the traversal contains multiple labels.
  • Add an algorithm for finding (weakly) connected components given a specific starting node.
  • Improve the performance and stability of query result export.
  • Schema Builder: Fix a bug where the selector returns a stale value after the available options change.
  • Web Query UI: Improve the display of error messages.
  • Support connecting to Amazon S3 Tables.
  • Enhance service consistency across version upgrades.
  • Improve query performance when only the ID field is used.
  • Bump golang.org/x/net from 0.33.0 to 0.36.0.
  • Bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2.

PuppyGraph 0.63

2025-03-12

  • Cypher: Fix a query error related to labels().
  • Cypher: Fix handling of nonexistent labels in the MATCH clause.
  • Cypher: Improve the support for CASE WHEN.
  • Fix a false alert incorrectly flagging the Date type as invalid in schema validation.
  • Improve the Cypher query interface in the Web UI.
  • Optimize the query performance for counting elements.

PuppyGraph 0.62

2025-03-06

  • Cypher: Introduce a new Cypher query interface in the Web UI. Users can now seamlessly switch between Cypher and Gremlin for a cohesive experience.
  • Cypher: Fix a query data ordering issue when combining multiple data streams into a single one.
  • Gremlin: Restrict allowed Groovy methods in the query.
  • Fix an issue where Schema validation did not flag the same label being used for both nodes and edges.
  • Fix an issue where the health check process could trigger an error.
  • Better metadata caching for data sources over JDBC to improve the query performance.
  • Address an issue where query parameter types were not properly handled in graph algorithms by removing unnecessary strict type enforcement.

PuppyGraph 0.61

2025-03-02

  • Cypher: Improve robustness for string-specific comparison operators.
  • Fix a race condition that could cause a server failure when resetting the schema.

PuppyGraph 0.60

2025-02-26

  • Gremlin: Fix an issue on NULL filtering in certain project() step cases.
  • Cypher: Add support for string-specific comparison operators: STARTS WITH, ENDS WITH, CONTAINS and =~.
  • Service stability improvements.

PuppyGraph 0.59

2025-02-24

  • Gremlin: Improve the support for regex matching on non-string properties with implicit conversion.
  • Cypher: Add support for type conversion functions and list scalar functions.
  • Add support for Spanner as a data source.
  • Stability improvements for status reporting in the Web UI.

PuppyGraph 0.58

2025-02-13

  • Performance optimization on the PageRank algorithm.
  • Gremlin: Allow regex matching on non-string properties with implicit conversion.
  • Upgrade go version to 1.23.1.

PuppyGraph 0.57

2025-02-07

  • Fix an unable to install schema issue.
  • Improve the prometheus metrics for cluster deployment.
  • Fix a NULL handling issue in Cypher.
  • Fix an issue where the PageRank algorithm failed to initialize.

PuppyGraph 0.56

2025-02-03

  • Fix an authentication issue.
  • Fix some server startup stability issues.

PuppyGraph 0.55

2025-01-27

  • Add anySatisfy() and allSatisfy() steps for array types in Gremlin.
  • Better support for OPTIONAL MATCH in Cypher.
  • Switch to a new implementation of the FULL cache strategy. To switch back to the old implementation temporarily, set the environment variable GRAPH_FEATURES=feature.engine.enableLocalStorageCache:false.

PuppyGraph 0.54

2025-01-22

  • Add data source connection documentation links on Graph Schema Builder Web UI.
  • Allow returning properties for Cypher queries with the Environment Variable config GRAPH_FEATURES=feature.engine.enableCypherEngineProperties:true

PuppyGraph 0.53

2025-01-16

  • Use the new engine for Cypher queries.
  • Avoid throwing an exception when select('some_name') is null in Gremlin.
  • Fix an issue with that otherV() incorrectly throws the path history of the traverser does not contain a previous vertex in some cases in Gremlin.
  • Fix an issue that array type intermediate results are not correctly handled with fold() step in Gremlin.
  • Bump github.com/golang-jwt/jwt/v4 to 4.5.1.

PuppyGraph 0.52

2025-01-11

  • Fix an issue that incorrectly handles the null value in the array data type.
  • Fix an issue that dedup().order() sometimes returned incorrect result in Gremlin.
  • Improve the handling of float literal values.
  • Upgrade golang.org/x/net to 0.33.0.

PuppyGraph 0.51

2025-01-03

  • Fix a Kubernetes deployment issue.

PuppyGraph 0.50

2025-01-01

  • Fix an error when handling array data types.

PuppyGraph 0.49

2024-12-25

  • Fix a duplicate alias issue in Schema Builder.
  • Support specifying a column as both an id and a property attribute in Schema Builder.
  • Clean up data lake metastore options in Schema Builder.
  • Fix a varchar length limit error.

PuppyGraph 0.48

2024-12-19

  • Allow hyphen in database and schema name when creating graph schema.
  • Improve the consistency of graph schema creation and cleanup.

PuppyGraph 0.47

2024-12-18

  • Bump golang.org/x/crypto from 0.26.0 to 0.31.0.
  • Improve the consistency of the health check process.
  • Improve the performance of aggregate functions in Gremlin.

PuppyGraph 0.46

2024-12-13

  • Improve the compatibility with Nessie catalog.
  • Add support for Oracle as a data source.
  • Add experimental support for PuppyGraph-specific predicates in Python Gremlin client with bytecode.

PuppyGraph 0.45

2024-12-09

  • Improve the Dijkstra algorithm to allow excluding certain nodes or edges.
  • Make the behavior of NULL handling in Gremlin more consistent.
  • Refresh the Graph Schema Builder Web UI, supporting additional data types (struct and binary) and multiple catalogs.
  • Server consistency improvements for multi-node deployment.

PuppyGraph 0.44

2024-12-04

  • Improve auto schema suggestion in the Graph Schema Builder Web UI.

PuppyGraph 0.43

2024-11-27

  • Fix an issue when NULL value is part of the composite ID.
  • Upgrade the go version to 1.23.

PuppyGraph 0.42

2024-11-21

  • Refresh the Graph Schema Builder Web UI, supporting composite IDs.

PuppyGraph 0.41

2024-11-19

  • Allow names starting with underscore (_) in the schema.
  • Better cluster deployment status on the Web UI.

PuppyGraph 0.40

2024-11-16

  • Support credential vending for Databricks and Unity Catalog.
  • Upgrade Apache TinkerPop to 3.7.3.
  • Support regular expression TextP.regex in Gremlin.
  • Improve the stability of the graph algorithm execution.
  • Improve the performance of the adaptive data cache.

PuppyGraph 0.39

2024-11-11

  • Fix the timeout parameter for bolt connections.
  • Fix data type serialization for the Gremlin PuppyGraph Console.

PuppyGraph 0.38

2024-11-06

  • Add support for Apache Polaris.

PuppyGraph 0.37

2024-10-29

  • Improve Label Propagation Algorithm.

PuppyGraph 0.36

2024-10-28

  • Add support for exporting query results to Azure Data Lake

PuppyGraph 0.35

2024-10-28

  • Improve the schema building experience under multi-node deployment.

PuppyGraph 0.34

2024-10-21

  • Improve multi-node deployment.
  • Improve the PuppyGraph Web UI.

PuppyGraph 0.33

2024-10-04

  • General query performance improvements.
  • Improve the support for Math step in Gremlin.

PuppyGraph 0.32

2024-09-25

  • Enhance the performance for high throughput queries.
  • Prefer Default credentials provider chain for AWS authentication.

PuppyGraph 0.31

2024-09-16

  • Add support for Label Propagation Algorithm.
  • Enhance the support for PageRank Algorithm.

PuppyGraph 0.30

2024-09-09

  • Upgrade the JupyterLab version to 3.6.8.
  • Fix issues in schema creation UI.

PuppyGraph 0.29

2024-09-02

  • Support exporting query results to Google Cloud Storage.
  • Enhance support for Array predicates.

PuppyGraph 0.28

2024-09-02

  • Enhance the NULL handling in Cypher.
  • Display the Catalog Schema in JSON format at creation time in the Schema Builder.
  • General fixes and improvements for Gremlin.

PuppyGraph 0.27

2024-08-14

  • Add support for SingleStore as a data source.
  • Enhance support for Coalesce step in Gremlin.

PuppyGraph 0.26

2024-07-31

  • Add support for Vertica as a data source.
  • Add support for DuckDB 1.0.
  • Enhance support for Gremlin.

PuppyGraph 0.25

2024-07-21

  • Enhance support for Gremlin.

PuppyGraph 0.24

2024-07-12

  • Fix the support for the Decimal data type with (precision, scale) parameters.
  • Add text predicates for case-insensitive and regex matching.

PuppyGraph 0.23

2024-07-03

  • Add support for more Data Lake storage types in Graph Schema Builder Web UI.
  • Add preliminary support for Array data type.