Changelog
To get a full outline of the changes, we invite you to review the official changelog below. This release does include a Breaking Change to existing pre v1.0.0 databases. If you need help migrating an existing deployment, reach out at hello@source.network or join our Discord at https://source.network/discord.
Features
- feat: Add Action system (#4922)
- feat: Add GetNodeOptions functionality to C bindings/CLI (#4876)
- feat: Add disconnect peer operation (#4879)
- feat: Add identity export/recovery to c bindings (#4839)
- feat: Add missing node options to C bindings (#4857)
- feat: Add support for building C bindings on Windows (#4691)
- feat: Add syntax sugar DeleteCollection cmd (#4688)
- feat: Branchable collection ACP (#4990)
- feat: Bump explorer version to v1.0.0 (#5015)
- feat: Create a .deb file when building C bindings for Linux (#4850)
- feat: DocID based on genesis CID (#4838)
- feat: Fetch orphan parent docs with exhaustive (#4454)
- feat: Gate commit queries with DAC (#4809)
- feat: Interactive secret prompt (#4928)
- feat: JS client p2p (#4793)
- feat: Render field Kind and Typ as strings (#4945)
- feat: Support comma-separated lists for connect/disconnect (#5000)
- feat: Support querying with multiple cids (#4794)
- feat: Support secondary index backfill (#4942)
- feat: Swap playground for explorer (#4919)
- feat: Transaction TTL Cache for HTTP API (#4994)
Fix
- fix: Add SkipChangeDetector mechanism for tests (#4975)
- fix: Add exhaustive directive to npx test fixtures (#4634)
- fix: Apply parent filter to pipe source in groupBy queries (#4955)
- fix: Bump api version to v1 (#4642)
- fix: Cap P2P stream length (#4728)
- fix: Clean schema heads on collection deletion/patch (#4805)
- fix: Clear stale errors in multiScanNode per accessor cycle (#4910)
- fix: Decrypt blocks during versioned-fetcher replay (#4790)
- fix: Derive CLI auth token audience from the API URL (#4929)
- fix: Enable auto tls again (#4979)
- fix: Encrypted index patch tests and validation (#4611)
- fix: Ensure list p2p replicator nac gate works (#4675)
- fix: Exit CLI on API server errors (#4740)
- fix: Fallback to scanNode if index can't handle (#4633)
- fix: Finalize DateTime inline array support (#4915)
- fix: Fix HTTP default address bug (#4941)
- fix: Fix LensVM stackoverflow (#4908)
- fix: Fix broken transaction behavior (#4587)
- fix: Fix change detector's behavior with commitTransaction (#4647)
- fix: Fix cli commands markdown output (#4681)
- fix: Fix duplicate relation groupBy (#4995)
- fix: Fix index and ACP bugs related to doc deletes (#4991)
- fix: Fix net relay bug in CLI (#4887)
- fix: Fix syncing of collections with no inactive version (#4926)
- fix: Fix transactional behavior in updateWithFilter (#4643)
- fix: GQL operation execution order (#5013)
- fix: Handle multi-layered self referencing relations (#4712)
- fix: Handle the refresh of views larger than 11MB (#4889)
- fix: Handle truncation of more than 11MB (#4877)
- fix: Improve wizard hint text visibility on dark terminals (#4875)
- fix: Inject release version in docker image build (#4930)
- fix: Introspection test bug (#4631)
- fix: KMS lookup under NAC for encrypted DAG sync (#4778)
- fix: Make COUNT work with groupBy (#4986)
- fix: Make DAC enabled by default (#4862)
- fix: Make GROUP respect result limit in ordered root object (#4958)
- fix: Make auth token rejection 403s describe their cause (#4934)
- fix: Make change detector skip transactional isolation tests (#4649)
- fix: Make non-existent transactions return an error (#4987)
- fix: Make silent build tag work on Android and Linux builds (#4761)
- fix: Make startup succeed if TLS is enabled for HTTP API (#4973)
- fix: Multi-peer KMS encryption-key fetch race (#4812)
- fix: Normalize trailing slashes on HTTP API routes (#4856)
- fix: OpenAPI optional bearerToken security scheme (#4980)
- fix: Orphan scan @exhaustive + relation ordering (#4662)
- fix: P2P KMS response key CID verification (#4961)
- fix: P2P-merged ACP doc with @index no corrupt index (#4835)
- fix: Parse schemas with multi-byte chars in SDL comments (#4836)
- fix: Patching of new fields on cols with sec. relations (#4709)
- fix: Persist test state for change detector (#4755)
- fix: Prevent doc writes after collection deleted (#4657)
- fix: Prevent txn-actions from executing concurrently (#4763)
- fix: Record view refresh errors against the refresh action (#4969)
- fix: Reduce telemetry logs (#4639)
- fix: Reject duplicate relation names without directive (#4861)
- fix: Reject nested list SDL with clear error (#4800)
- fix: Remove 'concurrent' transaction concept (#4692)
- fix: Remove ability to disable DAC (#4903)
- fix: Resolve the identity panic when no keyring (#4680)
- fix: Return ExecRequest errors correctly over http (#4730)
- fix: Sec. index edge cases in subscriptions and inv. joins (#4684)
- fix: Seed CollectionVersions from DB (#4750)
- fix: Subscription handler iterator leak on join collections (#4827)
- fix: Support field kind for non-nillable array scalars (#4895)
- fix: TopLevelNode.Close accumulates child errors (#4911)
- fix: Treat multiple filters as AND when join is inverted (#4656)
- fix: Truncate signed documents (#4672)
- fix: Use testing.Testing() for test mode detection (#4585)
Documentation
- docs: Better categorizing of HTTP ACP endpoints (#5010)
- docs: Clarify
keyring newcommand behavior (#4932) - docs: Clarify behavior of backup command (#4931)
- docs: Document soft delete behavior on CLI delete command (#4665)
- docs: Expand test suite documentation (#4699)
- docs: Rename leftover operator references (#4825)
- docs: Update DefraDB logo (#4664)
- docs: Update README to emphasize zero-trust (#4925)
- docs: Update link to ACP with new docs page (#4956)
Refactoring
- refactor: Default directive argument types (#4938)
- refactor: Inconsistent cli flags (#5006)
- refactor: Remove badger namespace from CLI path config (#5008)
- refactor: Remove collection cache from context (#4651)
- refactor: Remove txnMapHandle from C Binding wrapper (#4725)
- refactor: Separate cbindings to one function per file (#4786)
- refactor: Use JS txn directly instead of context (#4775)
Testing
- test: Add encrypted-docs test multiplier (#4914)
- test: Add signed-docs test multiplier (#4746)
- test: Cover GraphQL subscriptions on ACP-gated collections (#4852)
- test: Cover HTTP auth middleware rejection paths (#4892)
- test: Cover re-adding a deleted doc (#4854)
- test: Document incremental lens migration bug under indexes (#4737)
- test: Encrypt docs in replicator test (#4801)
- test: Extend CRDT tests (#4603)
- test: Introduce C binding smoke test (#4765)
- test: Introduce DeleteWithFilter test action (#4993)
- test: Migrate UpdateDoc action to new system (#4749)
- test: Migrate commit txn action to testo (#4754)
- test: Nil-guard collection slot before mutation (#4776)
- test: Track multiple expected DAG heads per doc (#4609)