rushdb-core
2.11.0
Minor Changes
- 111943d: Loosen datetime detection on import:
YYYY-MM-DD(date-only) strings are now automatically typed asdatetime, not just full ISO 8601 timestamps. This means values like2026-07-23work the same as2026-07-23T12:00:00Z— they get datetime comparisons, time-based aggregations, and the correct__proptypesentry — without any extra configuration.
Patch Changes
-
111943d: Embedding index cold-start (
rushdb-core):POST /ai/indexesno longer requires the indexed property to exist in Neo4j before creating the index policy. When no property node exists (no records with that property have been created yet), type validation is skipped — the property will be created naturally when the first record carrying it is written. Previously the server threwNotFoundException.DBRecordInstance.scoregetter (@rushdb/javascript-sdk): Records returned byrecords.vectorSearch()now expose a typedscoregetter (number | undefined) that mirrorsdata.__score. Regularfind()/search()results returnundefined.records.createManyvectors overload (@rushdb/javascript-sdk): Thevectorsparameter now accepts bothVectorEntry[]andVectorEntry[][]. A flatVectorEntry[]list is auto-wrapped into per-record entries, so single-record batches can omit the outer array nesting.Import form label reset (
rushdb-dashboard): The label field in the import data page is now cleared whenever the user goes back to the method-selection step, uploads a new file, or switches to the CSV editor — preventing stale labels from persisting across import iterations.Docs updated (
docs):indexing.mdrevised to reflect that index creation no longer requires the property to already exist.write-with-vectors.mdxandbring-your-own-vectors.mdxdocument the flatVectorEntry[]overload.semantic-search.mdxmentions therecord.scoreconvenience getter. TS reference docs (RushDB.md,DBRecordInstance.md) describe the flatvectorsform and thescoregetter. Python reference docs (RushDB.md) mention the flatvectorsform. All tutorial code examples (15.mdxfiles) now prefer the.scoregetter over raw__scoreaccess.manage-indexes.mdxerror reference updated to remove the stale 404 row (property no longer needs to exist). All incorrectwhere: { __id: ... }filter patterns replaced withwhere: { $id: ... }across 12 tutorial files (TS, Python, and Shell code blocks).
2.10.4
Patch Changes
-
f353d98: Faster, more reliable vector search
- Vector search no longer stalls behind background indexing work — when an index isn't ready yet, queries fall back to exact scoring instead of waiting, so results always come back promptly.
- Embedding provider calls now have a strict time limit. A slow or unresponsive provider results in a quick, clear error instead of a request that hangs until it times out.
- Index backfill automatically retries transient provider failures instead of marking the index as failed on the first error.
- Switched the default embedding model to
openai/text-embedding-3-smallfor consistently fast query-time embeddings. When the configured model changes, existing indexes are re-embedded automatically on startup — no manual steps required. - Dashboard: semantic search now waits until you finish typing and cancels superseded requests, instead of firing several parallel searches per keystroke.
-
13b9b5b: Switch default chat model to
openai/gpt-5.6-lunaThe default model behind AI search query generation and relationship suggestions (
RUSHDB_LLM_MODEL) is nowopenai/gpt-5.6-lunaacross all deploy templates, config examples, and docs — replacinggemini-2.5-flash-lite/gpt-4.1-mini(the latter is deprecated by OpenAI). The new model responds in about a second and improves structured-output quality, making dashboard AI search snappier and suggestions more reliable. Self-hosted deployments keep full control viaRUSHDB_LLM_MODELand can use any OpenAI-compatible provider as before.
2.10.3
Patch Changes
-
8e020f2: Dashboard: reworked project Getting Started into a "Connect this project" page with a connection panel (API key, URL, status) and SDK-first setup tabs; neutral, non-shifting feedback for copy/test-connection buttons; unified JSON + language tabs in the Search Query modal.
Core: fixed flaky post-import side effects — record/property counts, schema recalculation, and relationship suggestions could be skipped until records were touched again. Side effects now run on a guaranteed post-commit hook (no polling), with recount → schema recompute → relationship analysis correctly ordered and isolated so one failure no longer cascades.
-
8e020f2: Make schema recalculation scale with project size and stop AI endpoints from timing out on large datasets
- Schema recalculation is now labels-first and incremental in shape: instead of one monolithic full-graph scan inside a single transaction, the rebuild fans out small per-label statements — property inventory via pure VALUE-edge counts (no value reads), exact streaming min/max for number/datetime properties only, and split relationship topology/property queries — each running as its own short transaction on dedicated read sessions. No single unit of work can approach the server-side transaction time budget regardless of project size; on a 40k-record / 320k-value dataset a full forced rebuild completes in ~0.5s.
POST /ai/schemaand/ai/schema/mdno longer block or 408 on large projects: a stale cache is served immediately while a single-flight background refresh recomputes it; concurrent requests share one rebuild instead of stacking full-graph scans.force: truestill waits and now guarantees read-your-writes — a force call issued after a write never returns a schema computed before that write committed.- Smart Search (
POST /ai/search-query) no longer fails with “transaction time budget” errors: the endpoint releases the idle request-scoped transaction before the LLM round-trip (previously the transaction expired while waiting on the LLM and the request failed at commit), and query generation uses the cached schema instead of triggering a synchronous recompute. - Behavior note:
isArraydetection for string/boolean properties is now based on the bounded sample window (first 100 records per property) rather than a full column scan; number/datetimeisArray, all min/max ranges, record counts, and relationship counts remain exact.
2.10.2
Patch Changes
- 3104b26: Import and querying stability improvements
2.10.1
Patch Changes
- 0b1331c: Update stale unit tests
2.10.0
Minor Changes
-
d393b28: Separate Smart Search from vector search across SDKs, MCP, dashboard, and docs.
- Add
db.records.vectorSearch({...})as the JavaScript SDK API for direct vector similarity search. - Keep
db.ai.search(prompt)for schema-aware Smart Search that generates and executes aSearchQuery. - Add MCP
vectorSearchand keepsemanticSearchas a deprecated compatibility alias. - Update dashboard semantic retrieval to use the new records vector-search surface.
- Refresh docs and examples, including a Smart Search guide with flow, caveats, and limitations.
- Add
2.9.1
Patch Changes
-
0ac46fd: Rework
$cycleand stabilize relationship/query intelligence$cycleis now a record-level operator:where: { $cycle: { type, direction, hops } }— the value IS the traversal spec. Replaces the previousKEY: { $cycle: true, $relation: {...} }block form entirely (breaking: the old form now throws). Compiles to anEXISTSsubquery so the engine stops at the first cycle found per record instead of enumerating every path — avoids exponential blowup on densely connected graphs. Default traversal hop cap (RUSHDB_MAX_TRAVERSAL_HOPS) lowered from 25 to 10 to keep worst-case queries within the transaction budget.- Relationship pattern suggestions are now verified against live data: candidates are proposed from schema names/types and LLM semantic judgment, then confirmed with a real graph probe before being surfaced — sampled schema values (which carry no signal on high-cardinality data) no longer gate or reject a suggestion.
- SmartSearch prompts and specs (core, MCP server, skills, docs) made more data-agnostic and kept in sync across all four DSL mirrors.
- Fix: CSV import no longer fails when a column parses to a JS
Date(folded back to ISO string). - Fix: dashboard record search box text no longer leaks between project switches.
2.9.0
Minor Changes
-
d05e56c: Add variable-length (multihop) traversal and cycle detection to SearchQuery
$relation.hops— traverse a relationship pattern up to N hops in a singlewhereblock, without naming intermediate records:db.records.find({ labels: ['EMPLOYEE'], where: { EMPLOYEE: { $alias: '$manager', $relation: { type: 'REPORTS_TO', direction: 'out', hops: { min: 1, max: 4 } }, name: { $contains: 'Alice' } } } })hopsaccepts an exact count (hops: 3) or a range ({ min?, max? },mindefaults to 1).typeanddirectionapply to every hop; the nested label and its criteria constrain only the endpoint record. Omittingtypetraverses any relationship — RushDB's internal property metadata edges are automatically excluded, so untyped traversal never leaves the user's data model.$cycle— find records sitting on a closed path back to themselves (fraud rings, circular ownership, dependency cycles):db.records.find({ labels: ['ACCOUNT'], where: { $cycle: { type: 'TRANSFERRED_TO', direction: 'out', hops: { min: 2, max: 6 } } } })$cycleis a record-level predicate: its value is the traversal spec itself (type,direction,hops—hopsmandatory,min≥ 2, defaulting to 2). A cycle has no separate endpoint, so it accepts no$alias, no property criteria, and no nested labels. Combine with$notto select records not on a cycle.Traversal depth policy —
hops.maxis capped per deployment viaRUSHDB_MAX_TRAVERSAL_HOPS(default 10) on the shared cloud connection. Self-hosted deployments (RUSHDB_SELF_HOSTED=true) and projects with a custom external Neo4j allow unbounded traversal (maxomitted), guarded by the existing transaction timeout.Also in this release:
- New SDK types:
TraversalHopsandTraversalRelationOptions(TypeScript); matchingTypedDicts in the Python SDK. - NL→query (smart search), the MCP server spec/tools, and the query-builder/data-modeling skills all understand
hopsand$cycle. - Docs: full operator reference in Where Operators, updated hierarchy-modeling tutorial, and a new "Detecting Fraud Rings" tutorial.
- New SDK types:
2.8.1
Patch Changes
- 8fece4f: Remove redundant api guard
2.8.0
Minor Changes
-
cb1db5e: Bulk relationships overhaul, Zod validation migration, and a dashboard UI refresh.
Bulk relationships API
- Single-pass hash join for
relationships.createMany/deleteMany. The key-join path used to re-match the target label once per source record, so an unscoped source side went quadratic — ~2,100 source records timed out at the gateway even when only a handful of pairs were written. The join now enumerates each side once and emits distinct pairs, so cost tracksO(|source| + |target| + pairs)instead of label size. Covered by a new scale regression e2e suite (relationships.createMany.unscoped-scale). manyToManywith join keys no longer requireswherescoping. Only the pure cross-product form (nosource.key/target.key) still demands non-emptywherefilters on both sides. Shape errors now surface as structured 400s with guidance instead of raw 500s.- Structured 408 on transaction timeouts. Neo4j transactions run under a server-side time budget (default 55s, just under the 60s managed-gateway limit; configurable via
NEO4J_TRANSACTION_TIMEOUT_MS). When the budget is exceeded the API answers 408 with actionable guidance instead of a generic 500 — or the gateway's body-less 504. - Relationship writes (attach, detach, create-many, delete-many) on managed instances are now metered consistently with the import path; external-DB and self-hosted projects are unaffected.
- Bulk-relationships guide and REST reference updated to match.
Validation migrated to Zod
- Core: all REST request validation moved from Joi to Zod with byte-compatible behavior — unknown body keys are still tolerated and preserved, the
Request validation of body failed, because: ...error format is unchanged, and acceptance/rejection semantics are locked in by a new black-box e2e suite (validation.zod-migration) plus unit smoke tests. - Dashboard: all forms moved from yup to Zod (
zodResolver);yupandjoiare dropped from the dependency tree.
Dashboard UI
- Tailwind v4 migration with a CSS-first generated theme (
theme:generate),@tailwindcss/vite, andtw-animate-css; every element and component restyled against the new theme. The docs site moved to Tailwind v4 as well. - Record and property sheets refactored into docked side panels.
- Colorful property type icons.
Fixes and DX
- Dev-mode startup now probes the actual configured bolt connection for readiness instead of guessing the Neo4j HTTP port, so remapped or multiple local instances no longer confuse the health check.
.env.exampledocuments the newNEO4J_TRANSACTION_TIMEOUT_MSknob.
- Single-pass hash join for
Patch Changes
-
b00c545: Fix side effects (project stats recount, schema cache recompute, relationship suggestions) computing against pre-commit state for writes made inside a user-defined transaction.
Writes wrapped in a client-managed transaction (
x-transaction-id, e.g. every SDK Model write and anydb.tx.begin()flow) triggered the post-response side-effect runner while the transaction was still open. The runner read the graph from a fresh transaction, saw none of the uncommitted data, and persisted wrong results — a fresh tx-wrapped import left project stats at{"records":0}and relationship analysis saw an empty schema, so no suggestions ever appeared.Side effects now defer while the user-defined transaction is open and run once on
POST /tx/:txId/commit, when the writes are actually visible. Non-transactional writes are unaffected.
2.7.0
Minor Changes
-
772d881: ### Read-only API keys
API keys now carry a permission level: full access (read & write, the default) or read-only. Read-only keys can query everything — search, labels, properties, relationships, aggregations, semantic search, exports — while every write endpoint is rejected with
403, and the underlying database session is additionally opened in read-only mode as defense in depth. That makes read-only keys safe to embed in client-side code: public demos, dashboards, and prototypes can now query live data straight from the browser.- Dashboard: pick the permission level when creating a key; key lists show each key's level.
- MCP server: automatically detects the key's access level and hides write tools for read-only keys, so agents only see what they can actually call.
Bulk import: dramatically faster and more reliable
createMany/importJson/importCsvpreviously paid a fixed multi-second overhead per request that grew with project size — on larger projects imports could hit the 30s transaction ceiling and fail outright. This release removes that overhead entirely (read-model refresh now runs after the response instead of inside the request transaction) and rewrites themergeByupsert match to use index-capable property lookups instead of a full per-row scan.In practice: batches that previously timed out now complete in seconds, concurrent bulk imports work, and upserts stay idempotent — verified end-to-end at tens-of-thousands-of-records scale. On top of that, the default server-side transaction budget was doubled from 30s to 60s (including the TTL cap for client-managed transactions), giving heavy operations twice the headroom.
Clearer errors across the stack
- Server-side transaction timeouts now return
408with an actionable message instead of an opaque400with no body. - SDK errors now include the server's error message plus
statusandbodyfields on the thrownError— no more bareError("400"). POST /recordswith a malformed body (e.g. a mis-nameddatafield) now fails fast with a descriptive400validation error instead of a raw database500.- Fixed a crash where a dropped idle Postgres connection could take down a self-hosted instance; the connection pool now recovers automatically.
Standalone e2e suite
New self-provisioning end-to-end harness at the repo root:
pnpm test:e2espins up Neo4j + Postgres in Docker, builds and boots the platform, provisions credentials, runs the full platform + SDK test suites (including vector search and raw-query flows), and tears everything down. Point it at an existing stack withE2E_BASE_URL. All JavaScript SDK e2e suites moved frompackages/javascript-sdk/testsintoe2e/sdkand run against the SDK source.
2.6.1
Patch Changes
- 54a0767: Update docs
2.6.0
Minor Changes
- 1c9a994: Refactor Dashboard UI, add query lab, saved queries, optimize performance
2.5.1
Patch Changes
- 1736715: Update login and onboarding
- e04be41: Fix docker image build issues
2.5.0
Minor Changes
- 58c6a45: Add SSO auth path
2.4.1
Patch Changes
- ffd47f2: Dashboard UI fixes
2.4.0
Minor Changes
- 5de0ef8: Stability improvements
2.3.3
Patch Changes
- 913c5cb: Minor fixes
2.3.2
Patch Changes
- d8f63d7: Add docs search and indexing flow speed up
2.3.1
Patch Changes
- 1db6db1: Docs update
2.3.0
Minor Changes
- 7a519f2: Add edge properties support, indexes suggestions, and minor fixes
2.2.1
Patch Changes
- ec32832: Fix titles of dashboard pages shown on browser tabs
2.2.0
Minor Changes
- 2e9a82a: Docs update and SDK DX improvements
2.1.1
Patch Changes
- 5ee52f8: SQL migrations sync fix
- 149a2da: Minor fixes
2.1.0
Minor Changes
- 3000fa6: Add relationship patterns suggestions
Patch Changes
- 5d65783: OpenAI MCP domain verification
2.0.7
Patch Changes
- 6e712a7: MCP refresh tokens fix
2.0.6
Patch Changes
- c555b56: Minor docs update
- 72ee13f: Dashboard help panel improvements
2.0.5
Patch Changes
- eb50f23: Fix OAuth MCP Flow
2.0.4
Patch Changes
- bc52537: MCP OAuth API improvements
2.0.3
Patch Changes
- 7fdb94a: Fix MCP auth flow
2.0.2
Patch Changes
- 52b5f5c: Fix mcp image
- fc652b5: Fix docker image build
2.0.1
Patch Changes
- b1a491a: Fix chunks size in dashboard distro
2.0.0
Major Changes
- 07920fb: Move website out of monorepo
- 3b25fad: Major update: native sematic search, ontology api, agentic skills
Minor Changes
- 1e0acac: Decoupling billing from a platform
- d3156cb: Add native vector support and docs update
- bba13b1: Add editing functionality in dashboard
- 5043f13: Add skills package
- 6631e4a: Introducing select clause to SearchQuery
- b351ce4: Refactor dashboard
- 7bfea19: Add tutorials and BYOV feature
- edd8598: Improve separation between os and cloud versions
- f1ac305: Add oauth and mcp improvements
- 0786d74: Update docs portal
- 1275daf: Update docs portal & minor dx improvements
1.19.1
Patch Changes
- 78e6672: Fix deduplication issue for nested upsert
1.19.0
Minor Changes
- 865ba18: Add merge/upsert for bulk importing or single record creation
1.18.0
Minor Changes
- 488c1d1: createMany & importJson separation plus minor export and import improvements
1.17.0
Minor Changes
- 71ca63f: Add MCP Server package
1.16.0
Minor Changes
- fb311f9: Add timeBucket aggregations
1.15.3
Patch Changes
- 32bd9c1: Increased requests limits for Throttler
1.15.2
Patch Changes
- 9b25c07: Make int txn optionally closed after commit
1.15.1
Patch Changes
- 954ab72: Fix ts bug in aggregations
1.15.0
Minor Changes
-
7f19708: ## Summary Adds first-class grouping support to the Search API (
groupBy) across core, JavaScript SDK, dashboard, website, and docs. Also standardizes terminology (uniq->unique), refines aggregation semantics, and updates documentation with a dedicated grouping concept page.
✨ New Feature:
groupByClauseYou can now pivot / summarize search results by one or more keys. Keys reference an alias + property (root alias is implicitly
$record).Example (JS SDK):
const dealsByStage = await db.records.find({ labels: ['HS_DEAL'], aggregate: { count: { fn: 'count', alias: '$record' }, avgAmount: { fn: 'avg', field: 'amount', alias: '$record' } }, groupBy: ['$record.dealstage'], orderBy: { count: 'desc' } }) // → rows like: [{ dealstage: 'prospecting', count: 120, avgAmount: 3400 }, ...]Key capabilities:
- Multiple grouping keys:
groupBy: ['$record.category', '$record.active'] - Group by related aliases (declare alias in
wheretraversal first) - Works with all existing aggregation functions (count, sum, avg, min, max, collect, similarity, etc.)
- Ordering applies to aggregated rows when
groupByis present - Requires at least one aggregation entry to take effect
Result shape when using
groupBy: each row contains only the grouping fields plus aggregated fields (raw record bodies are not returned unless you also aggregate them viacollect).
🔄 Aggregation & Semantics Updates
collectresults are unique by default. Setunique: falseto retain duplicates.- Aggregation entries now consistently use the
uniqueflag (replacing legacyuniq). - Distinct handling for grouped queries unified under the
uniqueoption. - Improved Cypher generation: clearer alias usage and property quoting; vector similarity function formatting tightened.
- Added internal
PROPERTY_WILDCARD_PROJECTIONsupport (enables future selective projections) – not yet a public API, but impacts generated queries.
💥 Breaking Changes
Area Change Action Required Schema field definitions uniqkey renamed touniqueRename all occurrences ( { uniq: true }→{ unique: true }).Aggregation definitions Aggregator option uniqrenamed touniqueUpdate custom aggregation objects ( uniq: false→unique: false).Result shape (when using groupBy)Raw record objects no longer returned automatically If you previously expected full records, add a collectaggregation (e.g.rows: { fn: 'collect', alias: '$record' }).Default uniqueness for collectNow unique by default Add unique: falseif you require duplicates.Internal alias constant DEFAULT_RECORD_ALIAS→ROOT_RECORD_ALIASOnly relevant if you referenced internal constants (avoid relying on these). If any code or saved JSON queries still send
uniq, they will now fail unless a compatibility shim exists (none added in this release). Treat this as a required migration.
🛠 Migration Guide
- Rename all schema property options:
- Before:
email: { type: 'string', uniq: true } - After:
email: { type: 'string', unique: true }
- Before:
- Update aggregation specs:
- Before:
names: { fn: 'collect', field: 'name', alias: '$user', uniq: true } - After:
names: { fn: 'collect', field: 'name', alias: '$user' }(omituniqueif true)
- Before:
- Reintroduce duplicate collection (if needed): add
unique: false. - When adopting
groupBy, ensure at least one aggregation is defined; queries with onlygroupByare invalid. - Adjust consumer code to handle aggregated row shape instead of full record instances.
- For hierarchical drill‑downs: group at the parent level; use nested
collectfor children instead of adding child keys togroupBy.
Example Migration (JS)
aggregate: { - employeeNames: { fn: 'collect', field: 'name', alias: '$employee', uniq: true }, + employeeNames: { fn: 'collect', field: 'name', alias: '$employee' }, }Adding Grouping
const deptProjects = await db.records.find({ labels: ['DEPARTMENT'], where: { PROJECT: { $alias: '$project' } }, aggregate: { projectCount: { fn: 'count', alias: '$project' }, projects: { fn: 'collect', field: 'name', alias: '$project', unique: true } }, groupBy: ['$record.name'], orderBy: { projectCount: 'desc' } })
📘 Documentation
- Added dedicated concept page:
concepts/search/group-bycentralizing all grouping patterns (multi-key, alias-based, nested, uniqueness nuances, limitations). - Updated Python, REST, and TypeScript SDK "Get Records" guides with concise grouping sections linking to the concept page.
- Refactored Aggregations doc to avoid duplication and point to new grouping guide.
- Standardized examples to use
uniqueterminology.
🧪 Tests & Internal Refactors
- Extended aggregate & query builder tests to cover
groupBypermutations (single key, multi-key, alias grouping, collect uniqueness flags). - Parser adjustments for: property quoting, alias resolution, vector similarity formatting, optional matches, and root alias constant rename.
- Introduced
AggregateContextenhancements to track grouping state.
⚠️ Edge Cases & Notes
- An empty
groupByarray is ignored; supply at least one key. - Supplying a group key for a property that does not exist yields rows with
nullfor that column (consistent with underlying graph behavior) – validate upstream if needed. - Ordering by an aggregation that isn't defined will be rejected; always define the aggregate you sort by.
- To sort by a group key, just reference it in
orderByusing the property name (without alias prefix) after grouping.
✅ Quick Checklist
Task Done? Renamed all uniq→uniquein schema & aggregationsReviewed any collectaggregations for unintended de-duplicationAdded unique: falsewhere duplicates are requiredUpdated UI / API consumers for aggregated row shape under groupByAdded collectfields if raw record snapshots are still neededAdded / validated ordering under grouped queries
Feedback
Please report any unexpected behavior with grouped queries (especially multi-key or alias-based grouping) so we can refine edge case handling in upcoming releases.
TL;DR
Use
groupBy+aggregateto pivot results; renameuniq→unique;collectis now unique by default; aggregated queries return row sets, not raw records. - Multiple grouping keys:
1.14.2
Patch Changes
- 63823d0: Optimize DbContextMiddleware
1.14.1
Patch Changes
- 9cafe44: Transactions management improvements
1.14.0
Minor Changes
- 7cd984c: Added
records.importCsvmethod with configurable CSVparseConfigand extended import docs.
1.13.2
Patch Changes
- ed6063d: Fix missmatching transaction in import service
1.13.1
Patch Changes
- 2e89930: Safely handling properties with spaces in name
1.13.0
Minor Changes
- 2b76c22: Add raw cypher query support
1.12.1
Patch Changes
- d55ae51: Escape stringified JSON characters fix
1.12.0
Minor Changes
- bd84662: Create many relationships by key(s)
1.11.1
Patch Changes
- 00d100b: Fix leaking transactions pool
1.11.0
Minor Changes
- 43109e7: Fix misconfigured identity matching for external databases
1.10.1
Patch Changes
- 3bc1768: Fix processing boolean response at createMany method
1.10.0
Minor Changes
- 83b7ee4: Top level aggregations now works in a predicatable manner
1.9.1
Patch Changes
- 742bee5: fix: changed managedDb property type
1.9.0
Minor Changes
- 5e7ea2c: Feat: added non-encrypted prefix for token to setup server settings in sdk
1.8.1
Patch Changes
- c239ad9: Fix: Allowed non-email logins for self-hosted instances
1.8.0
Minor Changes
- 3312b28: Implemented ISR (Incremental Static Regeneration) for website, update dependencies, update docs, fix 3D view issue for records without a relationship (blank canvas)
1.7.1
Patch Changes
- b68c596: Fix error on an attempt of mapping result in createMany method
1.7.0
Minor Changes
- f9a386d: Implement $exists and $type operators
1.6.0
Minor Changes
- aae7461: Update aggregation behavior: all own properties of top-level record now included by default
1.5.1
Patch Changes
- 090a6ab: Fix empty projectId for customdb connection
1.5.0
Minor Changes
- a920ddf: Add cypher query preview
1.4.0
Minor Changes
- 3b52549: New SDK Architecture and minor bug fixes
1.3.2
Patch Changes
- 5ec730f: Add server logs and update deployment tutorial
1.3.1
Patch Changes
- 43d355b: Fix multiple records deletion error
1.3.0
Minor Changes
- 7f1bf8d: Add onboarding tour
1.2.2
Patch Changes
- 1720499: fix: simplified delete project flow, fixed orphan props deletion method
1.2.1
Patch Changes
- 7a4c193: Fix delete records by ids method
1.2.0
Minor Changes
- 99ac372: Fix label api error, add auth header verification for sdk, values now searchable with SearchQuery, update docs, user can now leave workspace
1.1.0
Minor Changes
- 1ba17a1: Implemented ordering by aggregated field
1.0.3
Patch Changes
- 3d3da80: Remove the billing tab for developers the workspace layout
1.0.2
Patch Changes
- da7874f: fix: improved invitation accept flow, normalized checkers for invitee emails
1.0.1
Patch Changes
- 2f1f084: Add local neo4j plugins and fix create method payload
1.0.0
Major Changes
-
9d10588: # RushDB 1.0 🚀
We're thrilled to announce RushDB's first major release with significant new capabilities:
Key Features
- Vector Search: Added comprehensive vector search functionality with similarity aggregates and query builder support
- Member Management: Implemented complete workspace membership system with invitations, user access controls, and per-user project assignments
- Remote Database Connectivity: Added support for remote Neo4j/Aura connections, expanding deployment options
- Authentication Enhancements: Added Google OAuth support and improved user authorization flows
- Documentation Overhaul: Completely reworked documentation with new tutorials and clearer guides
Security & Administration
- Improved user access control with revoke-access endpoint and normalized user deletion
- Enhanced
@rolesguard implementation for better permission handling - Added workspace billing accuracy improvements
- Implemented recompute-access-list functionality
This major release represents a significant milestone in RushDB's development with enterprise-ready features and improved developer experience.
0.17.1
Patch Changes
- f0a395c: SEO Optimizations
0.17.0
Minor Changes
- 1cdfbf7: Implemented RawApi mode for the dashboard and minor fixes
Patch Changes
- 29940a0: Fix lock file
0.16.0
Minor Changes
- 57a566b: Update LP & Relationships UI and Query
0.15.0
Minor Changes
- 6aa0dca: Update docs
- bcdf10d: Add llms.txt and llms-full.txt to docs generation
0.14.1
Patch Changes
- 7bfd0aa: Make label field required in import modal in dashboard
0.14.0
Minor Changes
- c7936fa: Update billing and limits
0.13.3
Patch Changes
- 9919a34: chore: website sitemap.xml updated
0.13.2
Patch Changes
- 646101a: Update website blog
0.13.1
Patch Changes
- 12d76f6: Update website
0.13.0
Minor Changes
- d045368: Introduce SDK options
0.12.2
Patch Changes
- 2019434: Improved local development setup
0.12.1
Patch Changes
- fe5c5f4: Fix cypher clauses order in querying property values
0.12.0
Minor Changes
- f703e9c: Update query for fetching property values and minor fixes & cleanups
0.11.6
Patch Changes
- 633047a: Fix missing return in get transaction method
- b4599fc: Fix missing label criteria in delete request
- 837f17a: Extended logger for SDK
0.11.5
Patch Changes
- c373116: Minor docs update and temporary disabled gh auth
0.11.4
Patch Changes
- 08b5d22: Fix Dockerfile pnpm version
0.11.3
Patch Changes
- 5a37f89: Version bump to fix pnpm workflow version
0.11.2
Patch Changes
- c7bd389: Version bump to fix pnpm workflow version
0.11.1
Patch Changes
-
4b13961: Fix github ouath login
Make GraphView responsive
Fix Password recovery flow
0.11.0
Minor Changes
- 85038ac: Update readme, website, add python package and examples
0.10.2
Patch Changes
- 476acdf: Update examples link
0.10.1
Patch Changes
- 0442ddc: Make SDK Instance method public
0.10.0
Minor Changes
- f159dfa: Improve type inference for SDK
0.9.5
Patch Changes
- 7ea9151: Update bundling for SDK and minor typo fixes
- fc33a7e: Fix types import and export issues
0.9.4
Patch Changes
- 09e2d57: Update docs, minor fixes and cleanups
0.9.3
Patch Changes
- 22ce867: billing setup update for dev/prod envs
0.9.2
Patch Changes
- eafe1b5: updated secret credentials
0.9.1
Patch Changes
- b055539: Dashboard/website: Introduced start plan, updated dashboard && website layouts
0.9.0
Minor Changes
- 6cc7392: Release 0.9.0 version with updated billing
0.8.1
Patch Changes
- 3d65528: Core/Dashboard/Website now accept billing data from internal billing service instead of hardcoded values
0.8.0
Minor Changes
- 49e3153: Dependencies update & landing page rework
0.7.2
Patch Changes
- c32b9bf: Aggregations minor fixes
0.7.1
Patch Changes
- 0551051: Restore original skip & limit behaviour for nested search
0.7.0
Minor Changes
- 5470782: Fix result cut-off for nested queries and url parsing in node.js env at sdk's networking
0.6.0
Minor Changes
- 6ec52f2: Add simple backup module, cli command and minor fixes
0.5.0
Minor Changes
- 3112626: Implemented logger feature for sdk
0.4.1
Patch Changes
- 070d094: Minor cloud update
0.4.0
Minor Changes
- 0e04a46: Version bump
Patch Changes
- 4f83de0: Minor fixes and updates
- defeaf0: Minor fixes and updates
0.3.1
Patch Changes
- d3b73ac: Minor fixes
0.3.0
Minor Changes
- 70d108d: CLI commands & datetime helpers in the Javascript SDK
0.2.10
Patch Changes
- 89f2783: Update readme and license
0.2.9
Patch Changes
- 9580ede: Update infrastructure and minor fixes
0.2.8
Patch Changes
- 1cf62ae: Minor fixes and cleanups
0.2.7
Patch Changes
- 147cc2b: Build docker image only on version bump
0.2.6
Patch Changes
- 89852a4: Update docker image release
0.2.5
Patch Changes
- cd0be33: Release flow improvements
0.2.4
Patch Changes
- 3741a7e: Release workflow change
0.2.3
Patch Changes
- c7f1eb9: Update workflow
0.2.2
Patch Changes
- de0fb17: Update release workflow
0.2.1
Patch Changes
- f934b0f: Bump version
0.2.0
Minor Changes
- cb1e4be: Update readme, cleanups, build public image