Skip to content

Latest commit

 

History

History
67 lines (55 loc) · 4.56 KB

File metadata and controls

67 lines (55 loc) · 4.56 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, adheres to Semantic Versioning, and is generated by Changie.

v0.6.0 - 2026-08-20

Added

  • Response and EagerResult now expose QueryType, ResultAvailableAfter, and ResultConsumedAfter, matching the streaming StreamSummary; this metadata was already returned by the Query API's non-streaming endpoint but wasn't being decoded

Fixed

  • ClientVersion (and the User-Agent header sent with every request) now correctly resolves the imported module's own version from the consumer's dependency list, instead of reading the consumer's own application version (almost always (devel)) and silently falling back to development

v0.5.0 - 2026-08-12

Added

  • Add streaming (JSON Lines) support for the Query API: WithStreamingSupport enables it, and QueryService.ExecuteStream returns records incrementally via a Go iterator instead of buffering the whole response

Fixed

  • Send the typed JSON Accept/Content-Type header as the documented versioned media type application/vnd.neo4j.query.v1.1 instead of the unversioned application/vnd.neo4j.query

v0.4.0 - 2026-08-11

Changed

  • WithAccessMode now defaults to AccessModeUnset instead of AccessModeWrite; when unset, no accessMode is sent and the server-side router forwards writes to the leader and reads to any member

v0.3.2 - 2026-08-11

Fixed

  • Access Mode in Query API uses Read / Write and not boolean values. Fixed.

v0.3.1 - 2026-08-11

Fixed

  • Query v2 requires access mode to be set in the request body and not in the headers

v0.3.0 - 2026-06-12

Added

  • WithAccessMode option controls the access mode header sent with every API request; use AccessModeRead for read-only workloads to allow the server to route to a read replica, defaults to AccessModeWrite

v0.2.0 - 2026-06-11

Added

  • WithAPIFlavor option selects between the Query API v2 (/db/{db}/query/v2) and the legacy Cypher HTTP Transaction API (/db/{db}/tx/commit); use FlavorLegacyHTTP for comparison testing against older Neo4j deployments

v0.1.2 - 2026-06-09

Fixed

  • Replace encoding/json with github.com/goccy/go-json in all production and test files, reducing BenchmarkDecodeResponse latency by ~67 % (9.9 ms → 3.3 ms), heap allocations by ~41 %, and allocation count by ~18 % on the full wire-response decode path.

v0.1.1 - 2026-06-05

Removed

  • Get, Put, Patch, Delete removed from RequestService interface; the Query API endpoint only accepts POST

Fixed

  • Duration.String() now emits PT0S for a zero-value Duration; the previous P0 output could not be parsed back by parseDuration, breaking roundtrips
  • parsePoint now handles WKT prefix POINT( without a space, alongside the existing POINT ( form
  • Strip trailing slash from baseURL in NewRequestService so Discover and query URLs are not doubled when a caller includes a trailing slash in WithBaseURL

Security

  • Remove Authorization header value and request body from debug logs; replaced with auth scheme and byte count to prevent credential exposure
  • URL-encode database name in query endpoint path to prevent path injection with special characters
  • WithDefaultHeaders now returns an error when a protected header (Authorization, Content-Type, Accept, User-Agent) is passed, making misconfiguration visible instead of silently dropping the header

v0.1.0 - 2026-06-04

Added

  • CheckVersion method validates the connected Neo4j server is running 2026.04.0 or newer; returns *VersionError with the required and actual versions
  • Re-export internal decode types (Response, Node, Relationship, Path, Notification, PlanOperator, Duration, Point) so callers can write custom ResultTransformer implementations

Fixed

  • WithDatabase option is now wired through to the request URL (/db//query/v2); was previously accepted but silently ignored
  • WithDefaultHeaders now correctly protects Authorization, Content-Type, Accept, and User-Agent from being overridden; keys were mixed-case and never matched the lowercase lookup
  • Responses exceeding maxResponseSize now return an explicit error instead of silently truncating the body; configurable via WithMaxResponseSize
  • Default baseURL no longer includes the query path suffix; was producing a doubled /db/neo4j/query/v2/db/neo4j/query/v2 URL for clients using the default configuration

Security

  • Remove debug log line that emitted the full Authorization header value (credentials) at client construction time