Skip to content

v1.9.0-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@jeroiraz jeroiraz released this 11 Oct 14:17
· 179 commits to master since this release
0a2992d

Release notes

Introducing immudb 1.9.0, a new release with several new features, which we are very excited about!

Swagger UI

Document Data Model can be accessed through a Swagger UI. Providing the API to interact with the document data-model API in a simple and intuitive way.

UUID datatype

Both the SQL data model as well as the Document data model now support this useful datatype. (#1796)

Historical SQL queries

Row history can be queried using SQL. (#1804)

Improved Document Audit endpoint

The Document Audit endpoint now displays the timestamp and the username associated with each change made to a document during revisions..

Furthermore, it is also possible to audit revisions of documents without retrieving the actual documents themselves (omitPayloads parameter)

Index Management

Prior to this release, index creation at the SQL and Document Data Model levels was only possible at the point of initialization, i.e. when a table or collection was empty. Since this release, this limitation has been overcome and non-unique indexes can now be created at any time, and they can also be physically deleted at any time.

More SQL statements

The addition of SQL statements for renaming tables and removing them from the database has been made. In addition, it is possible to add and remove columns from a table at any time.

Changelog

[v1.9.0-RC1] - 2023-10-11

Bug Fixes

  • correct immudb name in readme
  • allow the local id to be used if present even if remote flag is on
  • apply fixes discussed in PR
  • insertion ts for key-values should not be equal to the current root ts
  • Makefile: remove webconsole tag from immuclient/immuadmin builds
  • embedded/appendable: explicit freebsd build clauses
  • embedded/document: ensure multi-indexing is enabled
  • embedded/document: avoid waiting for tx to be committed
  • embedded/sql: advance position when decoding value at deleted column
  • embedded/store: use correct index path
  • embedded/store: handle transient key update
  • embedded/store: read lock when fetching indexer
  • embedded/store: precommitted transaction discarding recedes durable state
  • embedded/store: read lock when pausing indexers
  • embedded/tbtree: snapshot validation
  • embedded/tbtree: consider offset for history count calculation
  • embedded/tbtree: proper _rev calculation
  • pkg/server: buffer reuse

Changes

  • build with swaggerui
  • unnecessary use of fmt.Sprintf
  • use copy instead of a loop
  • align covered packages when pulling and merging
  • unnecessary use of fmt.Sprintf
  • cmd/immuclient: display raw column selector in table header
  • deps: bump golang.org/x/net from 0.10.0 to 0.12.0
  • deps: bump golang.org/x/crypto from 0.10.0 to 0.11.0
  • deps: bump golang.org/x/crypto from 0.13.0 to 0.14.0
  • deps: bump golang.org/x/crypto from 0.12.0 to 0.13.0
  • deps: bump golang.org/x/sys from 0.9.0 to 0.10.0
  • deps: bump golang.org/x/net from 0.14.0 to 0.15.0
  • deps: bump google.golang.org/grpc
  • deps: bump golang.org/x/sys from 0.11.0 to 0.12.0
  • deps: bump google.golang.org/grpc in /test/e2e/truncation
  • deps: bump google.golang.org/grpc
  • deps: bump golang.org/x/net from 0.15.0 to 0.17.0
  • deps: bump github.com/grpc-ecosystem/grpc-gateway/v2
  • deps: bump securego/gosec from 2.15.0 to 2.17.0
  • deps: bump golang.org/x/sys from 0.10.0 to 0.11.0
  • deps: bump golang.org/x/crypto from 0.7.0 to 0.10.0
  • deps: bump golang.org/x/net from 0.12.0 to 0.13.0
  • deps: bump google.golang.org/grpc from 1.55.0 to 1.56.2
  • deps: bump golang.org/x/net from 0.13.0 to 0.14.0
  • embedded/document: register username when applying a change
  • embedded/document: enable multi-indexing in doc engine tests
  • embedded/document: encoded document using valRef
  • embedded/document: attach username when auditing document
  • embedded/sql: post-commit physical index deletion
  • embedded/sql: uuid decoding
  • embedded/sql: improve internal index naming
  • embedded/sql: use declared constant for fixed ids
  • embedded/sql: insertion benchmark
  • embedded/sql: historical queries over primary index
  • embedded/sql: dynamic indexing
  • embedded/sql: deletion of primary index path
  • embedded/sql: multi-snapshop mvvc
  • embedded/sql: temporal queries with multi-indexing
  • embedded/sql: transactional drops
  • embedded/sql: unique index creation supported on empty tables
  • embedded/sql: support parenthesis as datatype constraint delimiter
  • embedded/store: multi-indexing
  • embedded/store: ensure index is erased from disk
  • embedded/store: wip multi-indexing
  • embedded/store: history returning value refs
  • embedded/store: indexer alloc its tx
  • embedded/store: remove metastate
  • embedded/store: history with rev count
  • embedded/store: injective index mapper
  • embedded/store: ensure snapshot up to date
  • embedded/store: indexing callbacks
  • embedded/store: key reader including historical entries
  • embedded/store: indexing prefix
  • embedded/store: entry mapper
  • embedded/tbtree: value-preserving history
  • embedded/tbtree: hcount serialization
  • embedded/tbtree: fetching historical values
  • embedded/tbtree: wip value-preserving history
  • embedded/tbtree: value-preserving history
  • embedded/tbtree: context propagation
  • pkg/api: adjust doc serializations to match verification
  • pkg/api: endpoint improvements
  • pkg/client: add setAll to immuclient mock
  • pkg/client: use buf for msg exchange
  • pkg/database: context propagation
  • pkg/database: context propagation
  • pkg/database: fix remote storage paths
  • pkg/database: increase delay when tx is not present
  • pkg/database: keept reading from specific tx
  • pkg/database: multi-indexing database
  • pkg/database: doc audit without retrieving payloads
  • pkg/database: register username when applying a change
  • pkg/database: fix remote storage paths
  • pkg/database: mandatory wait with async replication
  • pkg/database: kv count
  • pkg/server: register username when applying a change in doc apis
  • pkg/server: minor code adjustment
  • pkg/stdlib: non transactional ddl stmts
  • pkg/truncator: use embedded/logger package
  • pkg/verification: minor doc verification improvements
  • swagger: use embedded logger package
  • tests: Tests cleanup

Code Refactoring

  • pkg/logger: move logger from pkg to embedded

Features

  • update readme
  • prevent identifier from creation when use external id option
  • pass logger to heartbeater
  • add flag for using external id as a main one
  • embedded/document: register user when creating collection
  • embedded/document: doc audit without retrieving payloads
  • embedded/document: remove field from collection
  • embedded/document: add field to collection
  • embedded/sql: async multi-indexing
  • embedded/sql: extra metadata when creating tx
  • embedded/sql: include _rev column in historical queries
  • embedded/sql: drop index and table stmts
  • embedded/sql: table history
  • embedded/sql: query including historical rows
  • embedded/sql: dynamic multi-indexing
  • embedded/sql: wip uuid datatype support
  • embedded/sql: drop column stmt
  • embedded/store: use index attribute in kv metadata
  • embedded/store: getBetween
  • embedded/store: extra tx metadata
  • embedded/store: transactionaless multi-indexing
  • embedded/tbtree: getBetween
  • embedded/tbtree: key reader supporting historical values
  • pkg/api: docAudit returning timestamp and possibility to omit payloads
  • pkg/api: re-enable swagger ui
  • pkg/api: include username in document audit response
  • pkg/api: add field and remove field endpoints
  • pkg/database: add user when creating collection
  • pkg/server: add user when creating collection

Reverts

  • chore: remove initial swagger support

Downloads

Docker image
https://hub.docker.com/r/codenotary/immudb

immudb Binaries

File SHA256
immudb-v1.9.0-RC1-darwin-amd64 0de7525bcb60f7859f4944bd33469251292799c79282fae9b38d701ab1f6a960
immudb-v1.9.0-RC1-darwin-arm64 ea33b9c98de5421356b7bbfae90913125a78d6fae7665e3a29952d65529fbbde
immudb-v1.9.0-RC1-freebsd-amd64 9c8e2a3c8c54bce68f56a85b7d0adfe1b4e9624ace2513e6b7b119c9ffbb0c08
immudb-v1.9.0-RC1-linux-amd64 d4d6217ece830105f0e57a0ae1b756b522d6afc024eada5535d18f6e35b86003
immudb-v1.9.0-RC1-linux-amd64-fips 18288be1987b9095831bf54018cb1e82829a9a9e1f4316180fbad37f5710d700
immudb-v1.9.0-RC1-linux-amd64-static 2ef738f413a9ef3d3af5f53cb343155ec69c79d81feb329dd32c84ce5eff12ca
immudb-v1.9.0-RC1-linux-arm64 de4910464b103e932355f02e267834ed8d2e338eb2ca81f0f1b2ca1be543bdf4
immudb-v1.9.0-RC1-linux-s390x c276b459116f8cb074d780d8bdc2ee9c8dc68d4a59b108429a30c7bdebe15bc1
immudb-v1.9.0-RC1-windows-amd64.exe 38a30f5659ec9fa4fa22ebd4e97103c5ba38151c9a4e23ab82ce35fa32f57d10

immuclient Binaries

File SHA256
immuclient-v1.9.0-RC1-darwin-amd64 7321865ec2ad0420e04ee1345052bc2e86ca75991252f0d3af385fb2b5437104
immuclient-v1.9.0-RC1-darwin-arm64 5eb5a4e9cfde0d2df00cb0daf4044f1e746a78f68b178af195d21930b7f9998b
immuclient-v1.9.0-RC1-freebsd-amd64 101b0d8c810be6dcb90b7cb1cfdf1f049df130c9855a91a838ae9a8da6ddbed9
immuclient-v1.9.0-RC1-linux-amd64 93d1acacf4a77a8e65b6ca1686f7f3c5ebdac8fad9aa6e170b92ad1f6e23f15f
immuclient-v1.9.0-RC1-linux-amd64-fips 3e20c48faad37f6c6de4bbbb798a7af0c3d1a799986391a96a24ba8976537a17
immuclient-v1.9.0-RC1-linux-amd64-static 1bc8e5101a542a6d895377eec48f1da48bb3fd41030072380838855edb60de44
immuclient-v1.9.0-RC1-linux-arm64 e4ec9b1243f3b125633b91f8cbd07a36ed6b02d13d5d48917109cf3d4716bad4
immuclient-v1.9.0-RC1-linux-s390x c1337338337c9f2a04c5d6ce9b954ce580f652d8e83313d4bb033e8b1a5b5380
immuclient-v1.9.0-RC1-windows-amd64.exe e2b0d9128d068677836967e5a37cde046d251fec0459087d80f0141cd1f3f9e8

immuadmin Binaries

File SHA256
immuadmin-v1.9.0-RC1-darwin-amd64 29ce3aba4d99be6df397641bc56f6e666ab1b8f0926604be456429283ef4fd4a
immuadmin-v1.9.0-RC1-darwin-arm64 e2ffca4833f0dc98c251001f07161e456d468235e892f03c442c7a0166dc7650
immuadmin-v1.9.0-RC1-freebsd-amd64 f1948a79ecd6ac4592c8813a6c81a65e2178fa1d92a15630f6ba85d903b258ab
immuadmin-v1.9.0-RC1-linux-amd64 41dd2e97f661bfe5df9d9b2e6117135828db3e28b5742ffe6c064e959b2a9805
immuadmin-v1.9.0-RC1-linux-amd64-fips fc03a9e7aef0fa9e727858d6075181dceaa54dd0c8cfa9147071beb1109612bc
immuadmin-v1.9.0-RC1-linux-amd64-static 739a8740eee0eae569ffff33dbd48893f72e385e8c241a9445523aea0aba5bbd
immuadmin-v1.9.0-RC1-linux-arm64 e67b91cba52f32d1b88b77b266332056dfbc49ed0c84a9e8f2dbabcbdc4102d9
immuadmin-v1.9.0-RC1-linux-s390x b28e551edfa7e0d518d56dc5e66b1599631033a32c3d551b2342aa38e65b772f
immuadmin-v1.9.0-RC1-windows-amd64.exe 5acf27a00a58afa4607cc44712bd624fb8389975ee8547d0bdef917855db5414