Immudb Versions Save

immudb - immutable database based on zero trust, SQL/Key-Value/Document model, tamperproof, data change history

v1.9DOM.2

4 months ago

What's Changed

Fixes:

Changes:

Full Changelog: https://github.com/codenotary/immudb/compare/v1.9DOM.1...v1.9DOM.2

Downloads

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

immudb Binaries

File SHA256
immudb-v1.9DOM.2-darwin-amd64 443cad5a177b5f35ddc377bcd3a67bfbc8c1a60385aee9c5f30ead5d83809505
immudb-v1.9DOM.2-darwin-arm64 6f1227cffd777abc4452763c5a4987c42465c68b6e4b2effd7c03bbd9bb2972e
immudb-v1.9DOM.2-freebsd-amd64 9b1100c1948ac23f19426d816566b6886db2ce473a00d6c51b6bd22fb81ce627
immudb-v1.9DOM.2-linux-amd64 3e675fa8a6f6cbe72c529343e94a5440172800825db022e9f61686e6e23e3623
immudb-v1.9DOM.2-linux-amd64-static d06db1641d968c6ba3dd891373e51f29d20052fd2cd67c63d86b48e43a966a32
immudb-v1.9DOM.2-linux-arm64 1d99fb69519c1119dfd23deb6487d703cc2965289c1064fe534b973c5942228a
immudb-v1.9DOM.2-linux-s390x fafac16fc8e4c922f2a53fb97f6b5dd280a28cdf13ffa09f8895d94a3b18ce6d
immudb-v1.9DOM.2-windows-amd64.exe 9892b795e0f54207e5e847a8319708c09e1aeb8c67d7a254e1ea1f72248795b6

immuclient Binaries

File SHA256
immuclient-v1.9DOM.2-darwin-amd64 56ab0ce11d2951dc74fd84970bceba5f03473434fa1238f9d1aa5672bc276e3c
immuclient-v1.9DOM.2-darwin-arm64 cb34c3c9dd529d4c17d20b8ae74029d8550b7fe8ad230aba26f70e783beaec68
immuclient-v1.9DOM.2-freebsd-amd64 231c4d7660f6a2ab18e788b5d38cba288cfc3013e4f4f4913e6cc3d1640dbb45
immuclient-v1.9DOM.2-linux-amd64 5445b4a41590e630d5d416f82ff0315e7f579b27e216820a972ea5d1b8617102
immuclient-v1.9DOM.2-linux-amd64-static ff30fed639ad137b50c4eb29be78c3cfbadd994914bbb2d510d1d3900edb19fa
immuclient-v1.9DOM.2-linux-arm64 8ccc615cf2d906981081fa012dbcd443f9928c36e81144b5c8174b95cc1ba4be
immuclient-v1.9DOM.2-linux-s390x 5a647b6e7b3af4f0acd91a23b0b9045b56cde830ae1af9961762aa4217d07d25
immuclient-v1.9DOM.2-windows-amd64.exe 9453aeea10ff1fe8df943fac726f4fc258b7427390c5308fc878b71fa9c830d0

immuadmin Binaries

File SHA256
immuadmin-v1.9DOM.2-darwin-amd64 7feb1415ba0d3c8a2f61b0da0fc85c212b63dd3d0a6ac5ecb0177b6d867371e4
immuadmin-v1.9DOM.2-darwin-arm64 e274ebe58b68179b4d9f7c8b2f54e2e3b8a23ffbb75641fbe55b70975710d636
immuadmin-v1.9DOM.2-freebsd-amd64 afc72d4ad49af90829dcab9c81d26c0c36fe29892276b97c24ae0c57138a0e62
immuadmin-v1.9DOM.2-linux-amd64 0c1c188644d751d9b485baf522fb65e93a3e791a01a29bfc4b80990d29feb86a
immuadmin-v1.9DOM.2-linux-amd64-static faa227cfcef270db6f0908d3ee4823e0f9c4e3d65caef255fffefe81a51b9fe8
immuadmin-v1.9DOM.2-linux-arm64 d59290dd1037cebc05a2b89a119361772375e5bff94fc5fdfb2fd7799c914820
immuadmin-v1.9DOM.2-linux-s390x 22d3e7b5c6f446ed4cfb9d2d1f166b2e9c027c89df3f1a58c38ae1ec9c2138f1
immuadmin-v1.9DOM.2-windows-amd64.exe 26e61484ab2714700d2e95aa4fadf78011d2c931e17c0b12eb0433da43b99130

v1.9DOM.2-RC1

4 months ago

What's Changed

Full Changelog: https://github.com/codenotary/immudb/compare/v1.9DOM.1...v1.9DOM.2-RC1

v1.9DOM.1

5 months ago

Release notes

Even though this is a minor release, there are still some really useful features that have been incorporated into it.

ODBC

ODBC support via PostgreSQL driver.

More SQL statements

User management is now possible using SQL statements

CREATE USER user1 WITH PASSWORD "user1Password!" READWRITE;
ALTER USER user1 WITH PASSWORD "newUser1Password!" READ;
DROP USER user1;

Changelog

[v1.9DOM.1] - 2023-11-16

Changes

  • pkg/pgsql: handle odbc help
  • pkg/server: change permission automatically revokes existing ones

[v1.9DOM.1-RC1] - 2023-11-14

Bug Fixes

  • lower databasename in OpenSession
  • embedded/sql: fix data-race when mapping keys
  • embedded/sql: fix data-race when mapping keys
  • embedded/store: handle key mapping in ongoing txs
  • embedded/store: handle key mapping in ongoing txs
  • embedded/store: handle key mapping in ongoing txs
  • pkg/database: ensure proper tx validation
  • pkg/server: user creation with multidbs

Changes

  • docker image with swagger ui (for AWS Marketplace)
  • cmd/immudb: upgrade to new pgsql changes
  • deps: bump github.com/google/uuid from 1.3.1 to 1.4.0
  • embedded/sql: user pwd
  • embedded/sql: show users stmt
  • embedded/sql: wip emulate pg_type system table
  • embedded/sql: continue to support databases and tables datasources
  • embedded/store: indexer source and target prefixes
  • pkg/client: possibility to retrieve session id
  • pkg/pgsql: decouple error from ready to query messages
  • pkg/pgsql: uuid and float types conversion
  • pkg/pgsql: comment describing pgsql wire protocol constraints
  • pkg/pgsql: support multiple-statements in simple-query mode
  • pkg/pgsql: protocol enhancements
  • pkg/pgsql: handle deallocate prepared stmt
  • pkg/pgsql: tls support
  • pkg/pgsql: single command complete message
  • pkg/pgsql: transactional query machine
  • pkg/pgsql: pgsql write protocol improvements
  • pkg/pgsql: proper handling of queries with empty resultsets
  • pkg/pgsql: show table/s
  • pkg/server: upgrade to transactional pgsql server
  • pkg/server: set dynamic immudb server port in pgsql server
  • pkg/server: pgsql server creation only when enabled
  • pkg/server: list users from multidb handler
  • pkg/server: require proper permissions at multidb handler

Features

  • embedded/sql: show table stmt
  • embedded/sql: wip user mgmt
  • embedded/sql: show users stmt
  • embedded/sql: show databases/tables stmt
  • pkg/server: add support of underscore in db name Signed-off-by: Martin Jirku <martin@jirku.sk>

Downloads

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

immudb Binaries

File SHA256
immudb-v1.9DOM.1-darwin-amd64 289b31a3eb7f310e2cfd7ada84355e0e75d7dac984be77c1cd96efa806c84616
immudb-v1.9DOM.1-darwin-arm64 e119898f2a6e02c432acba30d4b53a71b9982ef17210c8799d115f3b8a149248
immudb-v1.9DOM.1-freebsd-amd64 713d42f31b7a403e1ecc3c8db77d93cfe86587e1ba9f58cb6a6eefcb71c88582
immudb-v1.9DOM.1-linux-amd64 0e757237b57141dad72144d436c6892be1f84b7253c2fcad4af503b5e849d4a4
immudb-v1.9DOM.1-linux-amd64-fips 57e6cc45544ea3356d2cd535422a2e290a9f709191a673cf376e032555fdaf67
immudb-v1.9DOM.1-linux-amd64-static 2ab1dceb1cc564e9dd9b74a4d51ead92c65f62292805add4bd5f2a1fdbe7ac5e
immudb-v1.9DOM.1-linux-arm64 d8eba29f41983c5041f8840eb170b952e21ac4cdbe1573d3640b63e29daffc25
immudb-v1.9DOM.1-linux-s390x e13ffb9aaf57fbf4bb5b9d59827e952374d2e8bcf8f11fa44d5b7160b02397f9
immudb-v1.9DOM.1-windows-amd64.exe 31317d4c48d27519ff61e4201a9599b80cbcb915e5d753d6f5ec390846ed06a1

immuclient Binaries

File SHA256
immuclient-v1.9DOM.1-darwin-amd64 e01339011dfc7fa7b4354d47540324d4aff17d5617a2693710e6acb149db136e
immuclient-v1.9DOM.1-darwin-arm64 4a6033fb3677243d8780f6c8a1e520e55684b933b4c4eaa3301b55b383bcd813
immuclient-v1.9DOM.1-freebsd-amd64 7cc0eed1ec81e96a1e81a215312ff383ace512ac8c5e1a038d9bcd26e4f5cde6
immuclient-v1.9DOM.1-linux-amd64 adace1b3df1f6928b80b6d1fa4d6ab2e51611e824a3c91fb2084dd09919a9b6c
immuclient-v1.9DOM.1-linux-amd64-fips 0da327a58967c260dfabf083aca3773a1f8b8a1f45c426e9e89e2030acab1460
immuclient-v1.9DOM.1-linux-amd64-static c0ea92322cdb2ba03deda3f5cc4ef46b0bdaeef769067431c3a3cb5e3e17992c
immuclient-v1.9DOM.1-linux-arm64 73f90d4ebf184b29fa256ae29590326ac74c00f60d3b2e85f2e737ca23744c0e
immuclient-v1.9DOM.1-linux-s390x fb1c5b442535aab7a0a67333f79c87bf4756c1d8493df16f23740c58d764078a
immuclient-v1.9DOM.1-windows-amd64.exe 4f459251a2c829e3f5a62802402d41dec18421dba76dc0190e11960e41dff414

immuadmin Binaries

File SHA256
immuadmin-v1.9DOM.1-darwin-amd64 c288e930b9617deb926d4bdbb39507986c36724c176ba2b728196bd75b9823aa
immuadmin-v1.9DOM.1-darwin-arm64 59253740a3874ad6fbb44c715cf6c4d191723519d751817ae9a3a4f20eea2e63
immuadmin-v1.9DOM.1-freebsd-amd64 ffaa408e0fbfd63fcdd93e3c6609be1359cc869efd657883acad3c90edc84810
immuadmin-v1.9DOM.1-linux-amd64 bfd7cc994319f3b08d300c94ff866f8e7df247fd3635ec2643faf346bdfa1ac7
immuadmin-v1.9DOM.1-linux-amd64-fips 6cd3b033417196035a9bf7976405e985941d0abab3b2d4a3bec581c35253a86c
immuadmin-v1.9DOM.1-linux-amd64-static 28e3db3699ff564ab99181ff76f2fbe9ea02b21b5ee2559811a9646f71bab8a5
immuadmin-v1.9DOM.1-linux-arm64 de468a18c40bd5c37c0a16695bdd715b5878d942078aac55afdc117975671dcc
immuadmin-v1.9DOM.1-linux-s390x f3f95588484d3951b7a638538b6c855ead46144c643c4a4abc21980b94767ce4
immuadmin-v1.9DOM.1-windows-amd64.exe 8f0b35ea2627011e764f3060cce452e93fbe874f505139e8c5e22b06dfa7f223

v1.9DOM.1-RC1

6 months ago

Release notes

Even though this is a minor release, there are still some really useful features that have been incorporated into it.

ODBC

ODBC support via PostgreSQL driver.

More SQL statements

User management is now possible using SQL statements

CREATE USER user1 WITH PASSWORD "user1Password!" READWRITE;
ALTER USER user1 WITH PASSWORD "newUser1Password!" READ;
DROP USER user1;

Changelog

[v1.9DOM.1-RC1] - 2023-11-13

Bug Fixes

  • lower databasename in OpenSession
  • embedded/sql: fix data-race when mapping keys
  • embedded/sql: fix data-race when mapping keys
  • embedded/store: handle key mapping in ongoing txs
  • embedded/store: handle key mapping in ongoing txs
  • embedded/store: handle key mapping in ongoing txs
  • pkg/database: ensure proper tx validation
  • pkg/server: user creation with multidbs

Changes

  • docker image with swagger ui (for AWS Marketplace)
  • cmd/immudb: upgrade to new pgsql changes
  • deps: bump github.com/google/uuid from 1.3.1 to 1.4.0
  • embedded/sql: user pwd
  • embedded/sql: show users stmt
  • embedded/sql: wip emulate pg_type system table
  • embedded/sql: continue to support databases and tables datasources
  • embedded/store: indexer source and target prefixes
  • pkg/client: possibility to retrieve session id
  • pkg/pgsql: decouple error from ready to query messages
  • pkg/pgsql: uuid and float types conversion
  • pkg/pgsql: comment describing pgsql wire protocol constraints
  • pkg/pgsql: support multiple-statements in simple-query mode
  • pkg/pgsql: protocol enhancements
  • pkg/pgsql: handle deallocate prepared stmt
  • pkg/pgsql: tls support
  • pkg/pgsql: single command complete message
  • pkg/pgsql: transactional query machine
  • pkg/pgsql: pgsql write protocol improvements
  • pkg/pgsql: proper handling of queries with empty resultsets
  • pkg/pgsql: show table/s
  • pkg/server: upgrade to transactional pgsql server
  • pkg/server: set dynamic immudb server port in pgsql server
  • pkg/server: pgsql server creation only when enabled
  • pkg/server: list users from multidb handler
  • pkg/server: require proper permissions at multidb handler

Features

  • embedded/sql: show table stmt
  • embedded/sql: wip user mgmt
  • embedded/sql: show users stmt
  • embedded/sql: show databases/tables stmt
  • pkg/server: add support of underscore in db name Signed-off-by: Martin Jirku <martin@jirku.sk>

Downloads

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

immudb Binaries

File SHA256
immudb-v1.9DOM.1-RC1-darwin-amd64 551ad297c9c46d92836cadc4b3e6fa94651a2636ec0fc6e8346554893feb64f9
immudb-v1.9DOM.1-RC1-darwin-arm64 a6ddcd29ec9d3b225fc028b43bbbbd3f0e63a2389f5b4fa474224d00d1b607ba
immudb-v1.9DOM.1-RC1-freebsd-amd64 0e366a53098d70a56c630d6fe94380a10242a02ae8faaa02aa6882f4bb973112
immudb-v1.9DOM.1-RC1-linux-amd64 555e080d37a844bc6af6916d65d32b50e252000f2ca8f20c9a5c16f6983100e1
immudb-v1.9DOM.1-RC1-linux-amd64-fips 3c529fef49055ef4e8c96525ef715320c37b607917ed69e5e5e35ec09a9873bc
immudb-v1.9DOM.1-RC1-linux-amd64-static a0f457e761622878450e5df54a143accdebea74513dfe872d43af9551cb1f702
immudb-v1.9DOM.1-RC1-linux-arm64 978014ca24f3dd3020837d77f46d6419b46ca6a8c741d6287a028128c7a1c018
immudb-v1.9DOM.1-RC1-linux-s390x 94796078c81f4a130c80cf078b504b2c7fcf8cd7d84c67015e911cde510db7c2
immudb-v1.9DOM.1-RC1-windows-amd64.exe 3f6c454bb61ce93f6087fccf8a11e60041b1df8732b05557342c0a0b1a8e2e6d

immuclient Binaries

File SHA256
immuclient-v1.9DOM.1-RC1-darwin-amd64 f0ea94cce62cc9ca01a79605c1a066ba0db94359e65de90b9ae6ff604f526cfe
immuclient-v1.9DOM.1-RC1-darwin-arm64 b9aaa99db111f8c63b5e4a1a3cc6e5732bcc43d51a644a4a11fe19640b6e53a7
immuclient-v1.9DOM.1-RC1-freebsd-amd64 24d9bf7cdb3faa137044948cfdc96787e00b7ed05797286102c6faad4608f7ee
immuclient-v1.9DOM.1-RC1-linux-amd64 f02ce12520550bb0672312504de5280f59a25e41a66151f0839eb1b27b8da087
immuclient-v1.9DOM.1-RC1-linux-amd64-fips 29be7ee77a2b522450582f94ba9ddd2008b80b01858a42b6328884c2ba38b3ad
immuclient-v1.9DOM.1-RC1-linux-amd64-static ffc7ae18c15caa425327eb4f33fa3c05a71d4fe0aa46558632563dca222bccca
immuclient-v1.9DOM.1-RC1-linux-arm64 1a7fab36d05a40a56b1f070769b362ff602c049ab69450d9abf9bb112afe5cb0
immuclient-v1.9DOM.1-RC1-linux-s390x 74186ae4f2b5f62f835892e5bfcc8a209fc573bcd1f8ce898f0eac8e2e966a3b
immuclient-v1.9DOM.1-RC1-windows-amd64.exe 88a5148e2d78ea94e11381fe618ed67bc8b15bfdf0d49f45d305e78005dd178d

immuadmin Binaries

File SHA256
immuadmin-v1.9DOM.1-RC1-darwin-amd64 a854dd089b35bbbaa88a04feed0815bce6cf2b0ed3f2202823ad7d93cc9c9139
immuadmin-v1.9DOM.1-RC1-darwin-arm64 448c2fb6285d91d0dc5acee0ff2c861cb8e44e287bb0b1acf7a8bbdcc4ffeb22
immuadmin-v1.9DOM.1-RC1-freebsd-amd64 8b9743e28e73dbc09f1d7e784f6463c6a98b4d4a78b4df956862c8cc401df502
immuadmin-v1.9DOM.1-RC1-linux-amd64 92906e31ff62177bd2969eb95ec3c45367011b28866727761e361b00ef39a057
immuadmin-v1.9DOM.1-RC1-linux-amd64-fips 7bdfde00d1e27ecce92706908059c6a7021d2e0914a71ce39d345a2eae406f10
immuadmin-v1.9DOM.1-RC1-linux-amd64-static 3faab4ddc9e4f175df766827b5cc11a238d13c1c8deeed9031cc01712970e883
immuadmin-v1.9DOM.1-RC1-linux-arm64 524e9e97a6080b4aa41ff817c0fa61f7123e872fdc901afbe0e8d12dc7ebd32d
immuadmin-v1.9DOM.1-RC1-linux-s390x 094eacf8aee5a00fd22df17e08b878612290805ea5003e85f545f523384ed70f
immuadmin-v1.9DOM.1-RC1-windows-amd64.exe 9e94ba577618b68b1ee25274bbf091ed873acedb147eccf0dfc8208380c1ffbd

v1.9DOM.0

6 months ago

immudb version 1.9DOM marks the final release in the 1.x series. We are working on the new v2.x series with a whole new db engine and some very interesting new features.

Release notes

Introducing immudb 1.9DOM, 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. (https://github.com/codenotary/immudb/pull/1796)

Historical SQL queries

Row history can be queried using SQL. (https://github.com/codenotary/immudb/pull/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.9DOM] - 2023-10-18

Changes

  • cmd/immuadmin: add indexing related flags

Features

  • embedded/sql: table renaming

[v1.9.0-RC2] - 2023-10-16

Bug Fixes

  • standard syntax for drop index
  • embedded/sql: fix sql temporal range evaluation

Changes

  • embedded/document: count with limit in subquery
  • embedded/sql: expose subquery creation
  • pkg/api: set optional parameters
  • pkg/api: set optional parameters

[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.9DOM.0-darwin-amd64 1b75ef452b7e54fb6b0146c7fa09c7e8a102e9c414233aee21f0543dd1f1381d
immudb-v1.9DOM.0-darwin-arm64 b0d881a9852b345e440140da4219c3dc392c2da8664e034175af53f6e0088bb0
immudb-v1.9DOM.0-freebsd-amd64 058888bac55dc1116a46fd6100a4091713d583216d5475dcbf152274759aae52
immudb-v1.9DOM.0-linux-amd64 f468c2f38f8f17083a19ab45d7a7399fb4d04122ac6b87e74264b6beeab7c6d4
immudb-v1.9DOM.0-linux-amd64-fips 23ec167aab685dc3af615b76bec5662cf44cef27b0a4c62b8404ee95353749be
immudb-v1.9DOM.0-linux-amd64-static bf7cdce91a5130cfb3f2dc2f81c11d8f4455adb24aab3008dce573d66900b008
immudb-v1.9DOM.0-linux-arm64 d14660a64813b3fee73d467e3845619a707490434743f9b2e660cd24f3956fc4
immudb-v1.9DOM.0-linux-s390x 1d8e112d9cf8d000ef403e3b9568b4561ea3bc756cb11d596a2cae2b8d1e943d
immudb-v1.9DOM.0-windows-amd64.exe dd10839f2fecd8485041ef751b6f4880e0a72f314983e9b9e255f5892e9ae1f6

immuclient Binaries

File SHA256
immuclient-v1.9DOM.0-darwin-amd64 e2d62a20e62f1692344ec5ee158366d38ae45e9c81c6d71410e14b0d8a9136f4
immuclient-v1.9DOM.0-darwin-arm64 bbd156311f5bd7686150a0a2287a360b07b0b713d12d59a4cdc0eee0fc9c59bf
immuclient-v1.9DOM.0-freebsd-amd64 126486590007964b6a7a711f0c792e1c1e1f77bdbf6ba5df70215e652eedeaf0
immuclient-v1.9DOM.0-linux-amd64 c5e8670e95c5c31d0b6e7f8c741c637aa6d49b5b677846157cacc3ca5a335d84
immuclient-v1.9DOM.0-linux-amd64-fips e264602020d0914b64f3394b22cd30f11aa815e9c4cccf836903c9427023dc5d
immuclient-v1.9DOM.0-linux-amd64-static 7068afd248c8ecf6763e86e58fc986f3845603848017050b93469314efb396f1
immuclient-v1.9DOM.0-linux-arm64 354ce9a337da8576fe78b7a89763f7958cc659f66665df5a4eb3429d1303db86
immuclient-v1.9DOM.0-linux-s390x a4f34ddc61d27e64ecd1a85c8298cdf3dc2e767c92c3bc5ba98d78015ec949f8
immuclient-v1.9DOM.0-windows-amd64.exe 4a0f9fe45b82fdfd355998bfe018e34de034e14226058ce62832bbef9eb0d88a

immuadmin Binaries

File SHA256
immuadmin-v1.9DOM.0-darwin-amd64 d0bab4f9b8f4799161eb7752dcaf2f4a2c80fb232500df234713ed38119c8683
immuadmin-v1.9DOM.0-darwin-arm64 fab8a78d126b74a877d4fccfefcfce4bcb8fe6a3f935a3f62a182b09f6c1f93e
immuadmin-v1.9DOM.0-freebsd-amd64 7a5ad00db26f8ddb4a9b11c613590bd88f23e9bb38b904d7906968adb7d69546
immuadmin-v1.9DOM.0-linux-amd64 d9a2e4670622d92e46aa60584000eaa824c9ebbdee3d871dbc31050680d8f593
immuadmin-v1.9DOM.0-linux-amd64-fips 026780962d6c50a98967152f4957e8cc4787f47661f933ac010281e1bb0b32f0
immuadmin-v1.9DOM.0-linux-amd64-static 8011e4c574a4a41fe246c8236d795249cf0a0f4a78ae84f261ace7d3a31f26d0
immuadmin-v1.9DOM.0-linux-arm64 a580b0bad8f1d69721ea185d76050ced3572cde9be9ace78193ccead42aa2253
immuadmin-v1.9DOM.0-linux-s390x 1563670c34101b6ab309fefdd7d35a117ba6ca38c3d3ea00354f6151b108ddf9
immuadmin-v1.9DOM.0-windows-amd64.exe 4f8814ad0d8764c08a7a3277853879bf8588061aaad1ca2782687ced9a9dc8b2

v1.9.0-RC2

7 months ago

immudb version 1.9DOM marks the final release in the 1.x series. We are working on the new v2.x series with a whole new db engine and some very interesting new features.

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. (https://github.com/codenotary/immudb/pull/1796)

Historical SQL queries

Row history can be queried using SQL. (https://github.com/codenotary/immudb/pull/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-RC2] - 2023-10-16

Bug Fixes

  • standard syntax for drop index
  • embedded/sql: fix sql temporal range evaluation

Changes

  • embedded/document: count with limit in subquery
  • embedded/sql: expose subquery creation
  • pkg/api: set optional parameters
  • pkg/api: set optional parameters

[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-RC2-darwin-amd64 95f20d6a9110bfcdee8a59932d66afb87d0d3f7a3dbf330cd1e51a9fb92eb1bc
immudb-v1.9.0-RC2-darwin-arm64 2ebcfd49b93ef38700f99aee2a7395c72ee286401bd623f1d0f32685df06da7c
immudb-v1.9.0-RC2-freebsd-amd64 8e7061bc1cc7482112f3919b0e16480dd72a46f4ac68522a687d789ecddc641c
immudb-v1.9.0-RC2-linux-amd64 17c9e8fb326dbcd458ea769bebd3c57a1fd9377a78e941500a0eeb7954390a6d
immudb-v1.9.0-RC2-linux-amd64-fips a0b614e0e8b42e92034822eca7e5d07da3481b45fc7b78f053b2f5a0ede5dd98
immudb-v1.9.0-RC2-linux-amd64-static eaafc0cd40887e0e750cd4b349588b503d7dec51b4b52f557a5767d85c167ab9
immudb-v1.9.0-RC2-linux-arm64 2ad5bf45dc9f1eccac3e5b35ff7155a64ccc4f60518a1c572c77272a4b5fb780
immudb-v1.9.0-RC2-linux-s390x b45134e1ad1ebfcc7a680fdd15622642d5c6868552e406fc8ee84377ce72178d
immudb-v1.9.0-RC2-windows-amd64.exe 97a9f96bc2cf76e5174a16211c92bf92747f8a6648226c5fc6452aeebc076aba

immuclient Binaries

File SHA256
immuclient-v1.9.0-RC2-darwin-amd64 f22080333cfdcef3858634b48eb08fa1a4688b9fcaaff1ed4e65650230dab25f
immuclient-v1.9.0-RC2-darwin-arm64 9683887d39fb1d5c85db214996d95b7b16ba15c5d39ec32832e0e465837d06e0
immuclient-v1.9.0-RC2-freebsd-amd64 f282c12c482530395887bc8577f2231a076f7247704c9bc668721d7fdaa7799d
immuclient-v1.9.0-RC2-linux-amd64 0636917001d7d43a79547bfe143a8e8ef5121ce420db8d3aed2c05bdfcff6531
immuclient-v1.9.0-RC2-linux-amd64-fips 2899b59b7ffb0b064e5441930143d35053214ea0f13f883690cb96029094e478
immuclient-v1.9.0-RC2-linux-amd64-static 7da2dee7215d416a9aa053901b88083907be8fd43ad6a74dbfe2aca447dd6dd8
immuclient-v1.9.0-RC2-linux-arm64 df80c2a1a0eb00f3bf2401f92c4243ba1a75b2c87e864460d0eb749b75339298
immuclient-v1.9.0-RC2-linux-s390x 8beb36b4c0716ebfef5e2b40fcc70c6d96cacc1203ba210ff64529dda4d1dcf0
immuclient-v1.9.0-RC2-windows-amd64.exe 33c25afe41252e6345dc3b8e3b874db101d9ece153b94f3f0a671841b9580c4a

immuadmin Binaries

File SHA256
immuadmin-v1.9.0-RC2-darwin-amd64 1289a7a4f0a3583978ed029d80ac55c2cfaa1b8425c0642d6d0d6cac582b082d
immuadmin-v1.9.0-RC2-darwin-arm64 f13ba6a36bf1346e0a5df2b985b648288ec056f037e9288997ab9b5ed2dbeeee
immuadmin-v1.9.0-RC2-freebsd-amd64 a87853b58e5b1955214d6d868f56cdb4236b846cb41550d03874a5102f36dcd2
immuadmin-v1.9.0-RC2-linux-amd64 4a67bde88616f6b582966ad467545d0f37a1d1996643679366dd1af8b375be2d
immuadmin-v1.9.0-RC2-linux-amd64-fips 3ec9b81e16cea671b0fd27e6819c017c06c68f5e3b7dc784f19e2703d2ff5989
immuadmin-v1.9.0-RC2-linux-amd64-static cf40710e236504f18664bb9dc4d9bb5f52fa4db9737d23fe0dfad1dda79ab96a
immuadmin-v1.9.0-RC2-linux-arm64 4c45b47f44392b2c5419297fa4a9a4100d2166ada3969f2f10ba014a83b867d5
immuadmin-v1.9.0-RC2-linux-s390x ba34a5be2181460967158b9580c1efd64e1b8b1c2530c1142ec09c9855cb686c
immuadmin-v1.9.0-RC2-windows-amd64.exe 1a4b8106311f1b5af2a3139ae75e8075574f20882d7f4d9505f0ae68bd7c6302

v1.9.0-RC1

7 months ago

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. (https://github.com/codenotary/immudb/pull/1796)

Historical SQL queries

Row history can be queried using SQL. (https://github.com/codenotary/immudb/pull/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

v1.5.0

10 months ago

Release notes

We are excited to introduce immudb 1.5, which has several new features: MVCC: Multi-Version Concurrency Control, Data Retention, Performance Improvements, Float64 data-type and Document Data Model APIs. In addition to fixing bugs, we enhanced the overall experience.

MVCC: Multi-Version Concurrency Control

Detection of conflicts is automatic when multiple transactions are processed concurrently. MVCC in conjunction with snapshots provides a lock-free and optimistic approach to ensuring data consistency.

Data Retention

Data retention refers to the practice of keeping data for a specific period of time before deleting it. This practice is commonly used in various industries and organizations to comply with legal and regulatory requirements, as well as to manage storage space and maintain data integrity.

One of the primary benefits of data retention is its ability to help maintain disk space. By setting a retention period, organizations can automatically delete data that is no longer needed, freeing up disk space for new data. This can be particularly useful for organizations that deal with large amounts of data, such as those in the financial or healthcare industries, where storing vast amounts of data can be costly.

To get more information about data retention please refer to the documentation on docs.immudb.io.

Performance Improvements

Indexing

Concurrent bulk indexing makes indexing faster than ever. It simultaneously indexes all entries within a single transaction. Moreover, multiple transactions can be indexed at once.

Transaction logs

As of this release, values can be stored in the same transactions logs as headers. When this mode is enabled, transaction commits may be speed up by up to 60%, but data retention will not be supported. The setting can only be set at the time of database creation, but a replica can have a different setting.

To further speed up transaction processing, file preallocation can also be enabled. On Linux, fdata_sync will be used when this setting is enabled. As a result of enabling file preallocation and embedded values mode in our initial evaluations, transaction throughput was increased by up to 100% (in comparison with the previous immudb release v1.4.1).

Float64 data-type

It is now possible to use double-precision floating-point data types with SQL according to IEEE-754 64-bit floating-point specification.

Document Data Model API

The document-data model provides simple yet powerful storage. It is possible to store and retrieve documents represented as JSON documents based on conditions that relate to indexed fields.

Changelog

[v1.5.0] - 2023-06-20

Bug Fixes

  • embedded/store: handle replication of empty values

Changes

  • embedded/document: naming validations
  • embedded/document: allow hyphen in doc naming
  • embedded/document: collection and field naming validations
  • embedded/store: embedded values and prealloc disabled by default

[v1.5.0-RC1] - 2023-06-16

Bug Fixes

  • build/Dockerfile.immuadmin to reduce vulnerabilities
  • build/Dockerfile.immuclient to reduce vulnerabilities
  • build/Dockerfile.immuadmin to reduce vulnerabilities
  • build/Dockerfile.rndpass to reduce vulnerabilities
  • build/Dockerfile.full to reduce vulnerabilities
  • modify tests for new object db initialisation
  • build/Dockerfile.full to reduce vulnerabilities
  • build/Dockerfile.rndpass to reduce vulnerabilities
  • table id generation
  • build/Dockerfile.immuclient to reduce vulnerabilities
  • docs: bump golang.org/x/net to 0.7.0 in docs and test pkg
  • embedded/ahtree: correct calculation of payload offset
  • embedded/appendable: proper closing of non-required chunks
  • embedded/document: support nil docs
  • embedded/document: proper column renaming
  • embedded/document: assign correct revision number
  • embedded/document: close readers before updating document
  • embedded/document: id field conversion
  • embedded/document: proper handling of deleted documents
  • embedded/document: validate doc is properly initialized
  • embedded/document: validate doc is properly initialized
  • embedded/sql: do not force columns to have max key length when unspecified
  • embedded/sql: include explicit close into sqlTx options
  • embedded/sql: multi-row conflict handling
  • embedded/sql: implicit conversion within expressions
  • embedded/sql: consider 0 as no limit
  • embedded/sql: parsing of exists stmt
  • embedded/sql: like operator supporting null values
  • embedded/sql: crash when RowReader.Read() returns error
  • embedded/sql: proper handling of parameters in row readers
  • embedded/store: force snapshot to include mandatory mvcc changes
  • embedded/store: ensure snapshot is closed for read-only txs
  • embedded/store: integrity checks covering empty values
  • embedded/store: avoid dead-lock when exporting tx with external commit allowance mode
  • embedded/tbtree: fix error comparison
  • embedded/tbtree: rollback to the most recent snapshot when insertion fails
  • embedded/tbtree: fix snapshot getKeyWithPrefix
  • embedded/tbtree: proper kv validation
  • embedded/tbtree: fix snapshot getKeyWithPrefix
  • go.mod: bump go version to 1.17 in go.mod
  • helm: set securityContext and podSecurityContext at correct location
  • pkg/api: create collection endpoint with path parameter
  • pkg/api: fix and implement LIKE and NOT_LIKE operator when querying documents
  • pkg/client: ensure ticker is properly stopped
  • pkg/client: return error when verifiedGet operation fails
  • pkg/database: read-only document API for replicas
  • pkg/database: skip eof error during scan
  • pkg/database: read from err channel
  • pkg/database: wrap propagated context
  • pkg/database: fix truncation and contemplate entry-less txs
  • pkg/replicator: check stream is properly initialized
  • pkg/server: do not set trailer metadata when replication is done with bidirectional streamming
  • pkg/server: ensure error propagation when sending headers
  • pkg/server: use grpc interceptors with grpc proxy
  • pkg/server: request explicit close when creating a rw sql tx
  • pkg/server: ensure tx is closed upon error
  • pkg/server: close document readers before cancelling txs
  • pkg/server: thread-safe doc reader during session handling
  • pkg/stream: handle the case when message fits in a single chunk
  • pkg/truncator: adjust plan logic and contemplate empty txs
  • pkg/verification: document comparison with proto equals
  • push.yml: update min go version

Changes

  • Add reformatting of protobuf file on build/codegen
  • rename DocumentBulkInsert to DocumentInsertMany
  • Update build/RELEASING.md file
  • allow multiple order by clauses
  • replace schemav2 with protomodel in truncator test
  • handle no more doc error inside response in search
  • use sys/unix package
  • remove docker test provider
  • update document with id if not nil
  • use gosec action
  • add updatecollection api
  • copy document catalogue when truncating db
  • add DocumentFindOneAndUpdate api
  • wait for immudb to get initialized
  • add test case for uncommitted tx not increasing table count
  • pass transaction to upsert function
  • check invalid search id in search request
  • add monotically increasing number to doc id generation
  • add document audit api
  • change DocumentFindOneAndUpdate to DocumentUpdate
  • return sql reader on document search
  • add order by clause in search
  • use sql statement for delete than raw query
  • add ReadN method to document reader
  • add documentReader iterator to read documents
  • remove initial swagger support
  • exclude generated code from coverage
  • exclude generated code from coverage
  • add unique search id for paginated readers
  • fix TestFloatSupport test case
  • simplified codegen
  • fix tests
  • change DeleteTableStmt to DropTableStmt
  • generate proto requests for DocumentDelete api
  • return ErrNoMoreDocuments instead of sql.ErrNoMoreRows
  • add DocumentDelete api
  • add default size for document reader lru cache
  • add lru cache for paginated readers
  • fix merge issues
  • add pagination support when fetching documents
  • fix failing verification test
  • increase test coverage for document engine
  • add bulk insert api
  • TruncateDatabase endpoint should use the same ongoing Truncator if present
  • address review comment
  • add go-acc and goveralls to ext-tools folder
  • delete columns on table deletion
  • check for column before adding index on collection update
  • add option for non unique indexes on collection
  • ci: improve notifications
  • cmd/immuadmin: flag to specify the usage of embedded values
  • cmd/immuadmin: add truncate cmd to immuadmin
  • cmd/immuadmin: modify truncation settings schema
  • deps: bump golang.org/x/crypto
  • deps: bump github.com/jaswdr/faker from 1.4.3 to 1.16.0
  • deps: bump securego/gosec from 2.14.0 to 2.15.0
  • deps: bump github.com/codenotary/immudb
  • deps: bump github.com/influxdata/influxdb-client-go/v2
  • deps: bump github.com/golang/protobuf from 1.5.2 to 1.5.3
  • deps: bump github.com/rogpeppe/go-internal from 1.8.0 to 1.9.0
  • deps: bump github.com/lib/pq from 1.10.7 to 1.10.9
  • deps: bump github.com/lib/pq from 1.10.2 to 1.10.7
  • deps: bump golang.org/x/net from 0.8.0 to 0.9.0
  • deps: bump github.com/rs/xid from 1.3.0 to 1.5.0
  • deps: bump github.com/stretchr/testify from 1.8.0 to 1.8.2
  • deps: bump aws-actions/configure-aws-credentials from 1 to 2
  • deps: bump github.com/spf13/cobra from 1.2.1 to 1.6.1
  • deps: bump github.com/grpc-ecosystem/grpc-gateway/v2
  • deps: bump google.golang.org/grpc from 1.46.2 to 1.54.0
  • deps: bump github.com/spf13/viper from 1.12.0 to 1.15.0
  • embedded/ahtree: add inline comments
  • embedded/appendable: fsync freebsd
  • embedded/appendable: automatic file creation only when appending
  • embedded/appendable: use fdatasync when file is preallocated
  • embedded/appendable: file syncing per os
  • embedded/appendable: support file preallocation
  • embedded/appendable: file syncing using fdatasync when available
  • embedded/appendable: minor improvements reading files
  • embedded/appendable: metadats with putBool
  • embedded/document: remove dead-code
  • embedded/document: add float support for doc engine
  • embedded/document: raw document validation
  • embedded/document: improve error handling
  • embedded/document: transactional collection update
  • embedded/document: support null values in indexed attributes
  • embedded/document: retrieval of raw document
  • embedded/document: move source code into dedicated files
  • embedded/document: use onclose callback to close the tx
  • embedded/document: return struct when auditing document history
  • embedded/document: add test to ensure key ordering in document during serialization
  • embedded/document: blob type not yet supported
  • embedded/document: catch key alredy exists error
  • embedded/document: catch tx read conflict error
  • embedded/document: translate table already exists error
  • embedded/document: minor var renaming
  • embedded/document: fix query stmt generator and add tests
  • embedded/document: leverage sqlengine lazy index contraint evaluation
  • embedded/document: binary serialization of doc payload
  • embedded/document: use query limit when searching
  • embedded/document: wip continue with improvements
  • embedded/document: wip continue with improvements
  • embedded/document: wip continue with improvements
  • embedded/document: wip improvements
  • embedded/document: add collection deletion api support
  • embedded/document: minor code simplification
  • embedded/document: add variable length support for multiple types
  • embedded/document: ensure order by clauses are used when deleting and updating
  • embedded/document: improve error messages
  • embedded/document: minor code adjustments
  • embedded/document: transactional collection and document creation
  • embedded/document: improve error messages
  • embedded/document: possibility to specify desc order when querying document history
  • embedded/document: add tests for blob type
  • embedded/document: avoid public dependency on sql
  • embedded/document: add test cases for collection on doc engine
  • embedded/document: change querier from BinBoolExp to CmpBoolExp
  • embedded/document: transactional document creation
  • embedded/document: add document id generation
  • embedded/document: typo in error message
  • embedded/htree: allow creation of empty hash trees
  • embedded/object: add document abstraction
  • embedded/object: add collection/database statements
  • embedded/sql: use read-only txs whenever possible
  • embedded/sql: make sql engine generic for object store
  • embedded/sql: limit and offset boundary validation
  • embedded/sql: minor numeric type adjustments
  • embedded/sql: implicit conversion support in limit and offset clauses
  • embedded/sql: simplified sql tx
  • embedded/sql: return closed sql txs
  • embedded/sql: implicit conversion from varchar to int and float types
  • embedded/sql: upgraded row reader
  • embedded/sql: ddl stmts register catalog mutation
  • embedded/sql: snapshot reuse improvements
  • embedded/sql: lazy index contraint validation
  • embedded/sql: WIP singledb sql engine
  • embedded/sql: transient context
  • embedded/sql: validate total key length at index creation time
  • embedded/sql: extend max key length to 512
  • embedded/sql: cancellable row reader
  • embedded/store: add in-line documentation for store options
  • embedded/store: validate Eh only when integrity checks are not disabled
  • embedded/store: addition of a cache for values
  • embedded/store: consume all tx content even if integrity checks are disabled
  • embedded/store: optional integrity checking when reading values
  • embedded/store: validate Eh only when integrity checks are not disabled
  • embedded/store: inline comments
  • embedded/store: fix typo in inline comment
  • embedded/store: validate gets using filters
  • embedded/store: MVCC read-set with boundaries
  • embedded/store: context propagation
  • embedded/store: mvcc validation only if another tx was processed
  • embedded/store: minor changes after rebasing from master
  • embedded/store: simplified dualproof implementation
  • embedded/store: skipIntegrityCheck parameter when reading data
  • embedded/store: minor code improvement
  • embedded/store: add min limit for truncation frequency
  • embedded/store: use syncSnapshot to validate ongoing txs
  • embedded/store: unify Read and ReadBetween
  • embedded/store: transient context
  • embedded/store: tx header is returned when fully committed
  • embedded/store: api upgrade
  • embedded/store: set ctx as first argument
  • embedded/store: readValueAt and exportTx improvements
  • embedded/store: update ReadBetween
  • embedded/store: contextualized transactions
  • embedded/store: inline comments
  • embedded/store: snapshot reuse improvements
  • embedded/store: set smaller default value for indexing bulk size
  • embedded/store: wip mvcc validations
  • embedded/store: simplified indexer initialization
  • embedded/store: multi-tx unsafe mvcc
  • embedded/store: set tx as closed upon cancellation
  • embedded/store: wip mvcc validations
  • embedded/store: set ctx as first argument
  • embedded/store: embedded meta attribute required if version is greater than 1
  • embedded/store: set embedded values mode as default one
  • embedded/store: backward compatible embedded value mode
  • embedded/store: optional integrity checking when reading values
  • embedded/store: preallocate tx header log files
  • embedded/store: wip mvcc validations
  • embedded/store: handle eof when reading last committed tx
  • embedded/store: support preallocated files when reading tx data
  • embedded/store: wip preallocated clog
  • embedded/store: option to prealloc files
  • embedded/store: optional integrity checking
  • embedded/store: further in-line documentation
  • embedded/store: make truncation validation tolerate entryless txs
  • embedded/store: allow tx without entries as long as it contains metadata
  • embedded/store: add hashValue as fixed 32 byte size
  • embedded/store: add test for TxOptions
  • embedded/store: add min limit for truncation frequency
  • embedded/store: multi-tx bulk indexing
  • embedded/store: fix default vlog cache size and add validation for hash when reading from cache
  • embedded/store: safe key copy for mvcc validation
  • embedded/store: improve log messages when discarding precommitted transactions
  • embedded/store: mvcc validations
  • embedded/store: fix rebase issue with readValueAt for vlogcache
  • embedded/store: multi-timed bulk insertions
  • embedded/store: clog file size adjustment only when preallocation is disabled
  • embedded/store: added more in-line comments
  • embedded/store: file preallocation not enabled by default
  • embedded/store: propagate context usage
  • embedded/tbtree: parametrize snapshot creation specs
  • embedded/tbtree: in-line documentation
  • embedded/tbtree: initialize tbtree with a non-mutated leaf
  • embedded/tbtree: getWithPrefix
  • embedded/tbtree: remove unnecessary kv sorting
  • embedded/tbtree: add in-line documentation
  • embedded/tbtree: minor code improvements
  • embedded/tbtree: rollback not needed as updates are made in a copy
  • embedded/tbtree: add in-line comments
  • embedded/tbtree: wip reduce allocs while updating inner node
  • embedded/tbtree: optimized bulk insertion
  • embedded/tbtree: optimize snapshot renewal
  • embedded/tbtree: wip optimized insertion
  • embedded/tbtree: variable renaming after rebasing
  • embedded/tools: upgrade embedded tools with transient context
  • embedded/watchers: return context error upon cancellation
  • embedded/watchers: set ctx as first arg
  • embedded/watchers: use context instead of cancellation channel
  • package/database: bunch of fixes and improvements in document engine
  • pkg: add more tests admin truncate command
  • pkg/api: expose db setting to enable file preallocation
  • pkg/api: use ErrrIs/ErrorContains in error checks
  • pkg/api: rename idFieldName to documentIdFieldName
  • pkg/api: annotate required fields
  • pkg/api: use of path parameters for document-related endpoints
  • pkg/api: expose new store indexing options
  • pkg/api: document update with path parameter
  • pkg/api: document api improvements
  • pkg/api: remove bool from tx metadata conversion
  • pkg/api: document api improvements
  • pkg/api: snapshot reuse attributes
  • pkg/api: search api improvements
  • pkg/api: return txID when inserting or updating documents
  • pkg/api: expose MVCC read-set settings
  • pkg/api: remove unsupported attribute from response messages
  • pkg/api: revert changes in swagger spec
  • pkg/api: re-generated httpclient with DeleteDocument endpoint
  • pkg/api: singular document path for audit and proof endpoints
  • pkg/api: manual adjustments post-code generation
  • pkg/api: expose replication settings for skipping integrity checks and indexing
  • pkg/api: swagger gen
  • pkg/api: value cache settings exposed
  • pkg/api: annotate primitive types as required
  • pkg/api: endpoint renaming
  • pkg/api: cleaner session id header
  • pkg/api: minor proof request renaming
  • pkg/api: authorization in swagger spec
  • pkg/api: re-generated httpclient
  • pkg/api: expose support for unsafe mvcc transactions
  • pkg/api: expose embeddedValue database setting
  • pkg/api: remove generated httpclient
  • pkg/api: buch of implementation improvements
  • pkg/api: revised document and authentication apis
  • pkg/api: annotated required message fields
  • pkg/api: add tx metadata conversion
  • pkg/api: re-generated httpclient
  • pkg/api: change retention period in TruncateDatabase message to int64
  • pkg/auth: add document update permissions
  • pkg/client: minor renaming in tx options
  • pkg/client: move heartbeater.go to pkg/client
  • pkg/client/cache: improve test coverage
  • pkg/database: upgrade after rebasing
  • pkg/database: remove object store db initialisation
  • pkg/database: upgraded reader specs
  • pkg/database: add document query struct to abstract request query
  • pkg/database: change objectEngine to documentEngine
  • pkg/database: add mvcc test for truncation, parse retention period using duration
  • pkg/database: add more tests for truncation
  • pkg/database: add document store db initialisation
  • pkg/database: updated APIs with schema updates
  • pkg/database: implement GetCollection API
  • pkg/database: remove search through first query
  • pkg/database: add query parser for object to generate sql expression
  • pkg/database: fix truncation deletion point checks in test
  • pkg/database: add search document api implementation for object store
  • pkg/database: create document/collection from schemav2 requests
  • pkg/database: context propagation
  • pkg/database: minor document renaming
  • pkg/database: add and implement object db interface
  • pkg/database: add DocumentUpdate api
  • pkg/database: minor code aligments
  • pkg/database: add object store
  • pkg/database: context propagation from server to embedded layer
  • pkg/database: proper calculation of source tx
  • pkg/database: create txs with default options
  • pkg/database: hard limit on page size
  • pkg/database: check encoded value is consistent with raw document
  • pkg/database: document verfication
  • pkg/database: use _obj to hold raw document payload
  • pkg/database: snapshot reuse changes
  • pkg/database: add document engine abstraction
  • pkg/integration: exportTx benchmarking
  • pkg/replication: replicator using bidirectional streaming
  • pkg/replication: improve options validation
  • pkg/replication: skip integrity check when exporting transactions
  • pkg/replication: context propagation
  • pkg/replication: wip stream replication - only async replication working
  • pkg/server: multi-grpc request context propagation
  • pkg/server: added inline comments
  • pkg/server: set default replication settings
  • pkg/server: context propagation from grpc api to embedded package
  • pkg/server: upgrades after rebasing from master
  • pkg/server: upgrade to new insecure credentials api
  • pkg/server: log error when closing document reader
  • pkg/server: support snapshot reuse
  • pkg/server: close all paginated readers on close of session
  • pkg/server: integrate document functions with server apis
  • pkg/server: add pagination test for document search
  • pkg/server: ensure document reader is closed when swithing pages
  • pkg/server: minor code reuse
  • pkg/server: add test successful load/unload of db with truncator
  • pkg/store: skipIntegrityChecks parameter when reading data
  • pkg/stream: handle eof when sending data
  • pkg/truncator: return error if expiration time hasn't been met
  • pkg/truncator: add context to Truncate method
  • pkg/truncator: refactor truncator process
  • pkg/verfication: document verification methods
  • pkg/verification: strengthen proof validations
  • pkg/verification: minor renaming
  • pkg/verification: document verification using embedded identifier
  • pkg/verification: use proto serialization
  • test/objects: add tests to create collections
  • test/objects: use httpexpect
  • test/objects: add more tests to create collection
  • test/perf: fix version value for flag
  • test/perf: add immudb version to influxdb data
  • test/perf: add runner to results for influxdb
  • test/perf-tests: remove runner check
  • test/perf-tests: use proxy on benchmark runner
  • test/performance: call cleanup method
  • test/performance-test-suite: fix replica directory path
  • test/performance-test-suite: add sync benchmarks
  • test/performance-test-suite: changed server concrete implementation
  • test/performance-test-suite: replicas are able to communicate with primary
  • test/performance-test-suite: send results to influxdb
  • test/performance-test-suite: extract json from results
  • test/performance-test-suite: add influxdb host and toke arguments
  • test/performance-test-suite: use temp folders for primary, replicas and clients
  • truncator: add more coverage for truncator

Features

  • add vlog truncation functionality
  • ci: change notification
  • embedded/document: count documents
  • embedded/object: add object store to embedded pkg
  • embedded/sql: Initial float support
  • embedded/sql: limit and offset as expressions
  • embedded/sql: sql transaction creation with options
  • embedded/sql: short casting syntax
  • embedded/sql: wip unsafe and optimized mvcc
  • embedded/sql: implicit type conversion of numeric types
  • embedded/store: tx creation with options
  • embedded/store: expose GetWithPrefixAndFilters
  • embedded/store: embeddable values
  • embedded/store: unsafe mvcc mode
  • embedded/store: embedded values option
  • embedded/store: read-only transactions
  • embedded/store: GetWithPrefixAndFilters
  • embedded/tbtree: multi-timed bulk insertions
  • pkg/api: document proof endpoint
  • pkg/api: improved replace documents endpoint
  • pkg/api: keepOpen parameter to instruct server to maintain a document reader in memory
  • pkg/api: count documents endpoint
  • pkg/client: optional tx options are now available during the creation process

Downloads

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

immudb Binaries

File SHA256
immudb-v1.5.0-darwin-amd64 173b65e435c39c3ad05ba5836362ce20d189b5cfc324652927ab2afcddd317c0
immudb-v1.5.0-darwin-arm64 ac4382aa077e887b289337b11b6cbe634ccabcc4bd3df5baf0fc01eff1e4d70f
immudb-v1.5.0-freebsd-amd64 958652cd7405b8575d48827ab566ea0a2b6ca077a0ce784ac4693898def6aac2
immudb-v1.5.0-linux-amd64 f75d5738e8a9802793c0027b262075d2e309a3b56f7c6bea707a5e853009f4d9
immudb-v1.5.0-linux-amd64-fips 2c7da74a00bbf7aa1880abe7c8b5b57c82c905823a33627c4df010d6a031b054
immudb-v1.5.0-linux-amd64-static 6b2cf661cd53864dd964ecd68951cb52772b30514f5bc7915684bf6b4e8d285c
immudb-v1.5.0-linux-arm64 cb0ea6e504d0e6b83c09368a89dc05c0affd449becc09c30fd247aca040364b7
immudb-v1.5.0-linux-s390x 32a286126d6510be250746f6a5437e9731ea1e9895b2042d4e156ee9e1db8f12
immudb-v1.5.0-windows-amd64.exe 694ef41e3cbf563962fb9002ddbb7eead7f8229aeca862ca8baca01372d076ac

immuclient Binaries

File SHA256
immuclient-v1.5.0-darwin-amd64 828624252c317df11ae66b76fe927d0596779f670f561ddbb51683d1ce7d8303
immuclient-v1.5.0-darwin-arm64 779b3053fb6974836e66a2259f32c6cb1cfd62b84ba11969eab1faedbb66e40b
immuclient-v1.5.0-freebsd-amd64 efb075bb17ac5d895432f3ea5d5c0b249a372537676d823ad8e92f49236fd030
immuclient-v1.5.0-linux-amd64 04634a92dc23ec44dd605af60b620900d5c41040e8c7f3ee1779dc7b1ee736f3
immuclient-v1.5.0-linux-amd64-fips 05b987815a04f4fa82b03fa2327c04ddb0f1d260a39f4f25b923d6bb36dcc236
immuclient-v1.5.0-linux-amd64-static 72add649eb9d7ad0c704669919e18f0136ac3ae279ea78ec21ca5ef920283015
immuclient-v1.5.0-linux-arm64 2477d4c9ca5d18b872d4274b7f8fcccf0154c6fe690daf42a7cf84ca6e1214de
immuclient-v1.5.0-linux-s390x 73d694054420012af2b45fd5ef41d4ed27140ce47d69958be6256c80c7af157e
immuclient-v1.5.0-windows-amd64.exe dbdffb4e31ab013ffaae4cca4c5c75c43403bdfa5b82a069d96d8c20599df2fd

immuadmin Binaries

File SHA256
immuadmin-v1.5.0-darwin-amd64 81726288fc62acb437cd38605fecdf224aeb0c2970be92dd435f43503118cc76
immuadmin-v1.5.0-darwin-arm64 3a671f6d3f3dd5a32488a13364688e008e53621a934aa4e3945cac2cf78873af
immuadmin-v1.5.0-freebsd-amd64 8d4933cc9a14b5cd8447acdae35a0a20fbbc42e87eff7b0b5952460d787e664f
immuadmin-v1.5.0-linux-amd64 ef182d3b9223f33b1a5c096eef6ad5265feecd34453033333c70ef07e99d7113
immuadmin-v1.5.0-linux-amd64-fips ca64142fd4ecb1c4052834275198af3cafdfa1af2df8a3ad5003c80e5b41648a
immuadmin-v1.5.0-linux-amd64-static 7ed8233390b179d5ab536aedb2f912be962233908288821ad22e7cba14d6d257
immuadmin-v1.5.0-linux-arm64 e6d50077f792c9b62c1f70dd00b9c8d2394311f7f248743a2702966c03c402b3
immuadmin-v1.5.0-linux-s390x 4c67d2e197e0215603847fe67ebcc09a24d03ea01574663ef5f33456cf1e214f
immuadmin-v1.5.0-windows-amd64.exe 8a747bb5759d2d6737936f7eb545e5b524b4eda5acf90ab526d26b487a74b722

v1.5.0-RC1

10 months ago

Changelog

[v1.5.0-RC1] - 2023-06-16

Bug Fixes

  • build/Dockerfile.immuadmin to reduce vulnerabilities
  • build/Dockerfile.immuclient to reduce vulnerabilities
  • build/Dockerfile.immuadmin to reduce vulnerabilities
  • build/Dockerfile.rndpass to reduce vulnerabilities
  • build/Dockerfile.full to reduce vulnerabilities
  • modify tests for new object db initialisation
  • build/Dockerfile.full to reduce vulnerabilities
  • build/Dockerfile.rndpass to reduce vulnerabilities
  • table id generation
  • build/Dockerfile.immuclient to reduce vulnerabilities
  • docs: bump golang.org/x/net to 0.7.0 in docs and test pkg
  • embedded/ahtree: correct calculation of payload offset
  • embedded/appendable: proper closing of non-required chunks
  • embedded/document: support nil docs
  • embedded/document: proper column renaming
  • embedded/document: assign correct revision number
  • embedded/document: close readers before updating document
  • embedded/document: id field conversion
  • embedded/document: proper handling of deleted documents
  • embedded/document: validate doc is properly initialized
  • embedded/document: validate doc is properly initialized
  • embedded/sql: do not force columns to have max key length when unspecified
  • embedded/sql: include explicit close into sqlTx options
  • embedded/sql: multi-row conflict handling
  • embedded/sql: implicit conversion within expressions
  • embedded/sql: consider 0 as no limit
  • embedded/sql: parsing of exists stmt
  • embedded/sql: like operator supporting null values
  • embedded/sql: crash when RowReader.Read() returns error
  • embedded/sql: proper handling of parameters in row readers
  • embedded/store: force snapshot to include mandatory mvcc changes
  • embedded/store: ensure snapshot is closed for read-only txs
  • embedded/store: integrity checks covering empty values
  • embedded/store: avoid dead-lock when exporting tx with external commit allowance mode
  • embedded/tbtree: fix error comparison
  • embedded/tbtree: rollback to the most recent snapshot when insertion fails
  • embedded/tbtree: fix snapshot getKeyWithPrefix
  • embedded/tbtree: proper kv validation
  • embedded/tbtree: fix snapshot getKeyWithPrefix
  • go.mod: bump go version to 1.17 in go.mod
  • helm: set securityContext and podSecurityContext at correct location
  • pkg/api: create collection endpoint with path parameter
  • pkg/api: fix and implement LIKE and NOT_LIKE operator when querying documents
  • pkg/client: ensure ticker is properly stopped
  • pkg/client: return error when verifiedGet operation fails
  • pkg/database: read-only document API for replicas
  • pkg/database: skip eof error during scan
  • pkg/database: read from err channel
  • pkg/database: wrap propagated context
  • pkg/database: fix truncation and contemplate entry-less txs
  • pkg/replicator: check stream is properly initialized
  • pkg/server: do not set trailer metadata when replication is done with bidirectional streamming
  • pkg/server: ensure error propagation when sending headers
  • pkg/server: use grpc interceptors with grpc proxy
  • pkg/server: request explicit close when creating a rw sql tx
  • pkg/server: ensure tx is closed upon error
  • pkg/server: close document readers before cancelling txs
  • pkg/server: thread-safe doc reader during session handling
  • pkg/stream: handle the case when message fits in a single chunk
  • pkg/truncator: adjust plan logic and contemplate empty txs
  • pkg/verification: document comparison with proto equals
  • push.yml: update min go version

Changes

  • Add reformatting of protobuf file on build/codegen
  • rename DocumentBulkInsert to DocumentInsertMany
  • Update build/RELEASING.md file
  • allow multiple order by clauses
  • replace schemav2 with protomodel in truncator test
  • handle no more doc error inside response in search
  • use sys/unix package
  • remove docker test provider
  • update document with id if not nil
  • use gosec action
  • add updatecollection api
  • copy document catalogue when truncating db
  • add DocumentFindOneAndUpdate api
  • wait for immudb to get initialized
  • add test case for uncommitted tx not increasing table count
  • pass transaction to upsert function
  • check invalid search id in search request
  • add monotically increasing number to doc id generation
  • add document audit api
  • change DocumentFindOneAndUpdate to DocumentUpdate
  • return sql reader on document search
  • add order by clause in search
  • use sql statement for delete than raw query
  • add ReadN method to document reader
  • add documentReader iterator to read documents
  • remove initial swagger support
  • exclude generated code from coverage
  • exclude generated code from coverage
  • add unique search id for paginated readers
  • fix TestFloatSupport test case
  • simplified codegen
  • fix tests
  • change DeleteTableStmt to DropTableStmt
  • generate proto requests for DocumentDelete api
  • return ErrNoMoreDocuments instead of sql.ErrNoMoreRows
  • add DocumentDelete api
  • add default size for document reader lru cache
  • add lru cache for paginated readers
  • fix merge issues
  • add pagination support when fetching documents
  • fix failing verification test
  • increase test coverage for document engine
  • add bulk insert api
  • TruncateDatabase endpoint should use the same ongoing Truncator if present
  • address review comment
  • add go-acc and goveralls to ext-tools folder
  • delete columns on table deletion
  • check for column before adding index on collection update
  • add option for non unique indexes on collection
  • ci: improve notifications
  • cmd/immuadmin: flag to specify the usage of embedded values
  • cmd/immuadmin: add truncate cmd to immuadmin
  • cmd/immuadmin: modify truncation settings schema
  • deps: bump golang.org/x/crypto
  • deps: bump github.com/jaswdr/faker from 1.4.3 to 1.16.0
  • deps: bump securego/gosec from 2.14.0 to 2.15.0
  • deps: bump github.com/codenotary/immudb
  • deps: bump github.com/influxdata/influxdb-client-go/v2
  • deps: bump github.com/golang/protobuf from 1.5.2 to 1.5.3
  • deps: bump github.com/rogpeppe/go-internal from 1.8.0 to 1.9.0
  • deps: bump github.com/lib/pq from 1.10.7 to 1.10.9
  • deps: bump github.com/lib/pq from 1.10.2 to 1.10.7
  • deps: bump golang.org/x/net from 0.8.0 to 0.9.0
  • deps: bump github.com/rs/xid from 1.3.0 to 1.5.0
  • deps: bump github.com/stretchr/testify from 1.8.0 to 1.8.2
  • deps: bump aws-actions/configure-aws-credentials from 1 to 2
  • deps: bump github.com/spf13/cobra from 1.2.1 to 1.6.1
  • deps: bump github.com/grpc-ecosystem/grpc-gateway/v2
  • deps: bump google.golang.org/grpc from 1.46.2 to 1.54.0
  • deps: bump github.com/spf13/viper from 1.12.0 to 1.15.0
  • embedded/ahtree: add inline comments
  • embedded/appendable: fsync freebsd
  • embedded/appendable: automatic file creation only when appending
  • embedded/appendable: use fdatasync when file is preallocated
  • embedded/appendable: file syncing per os
  • embedded/appendable: support file preallocation
  • embedded/appendable: file syncing using fdatasync when available
  • embedded/appendable: minor improvements reading files
  • embedded/appendable: metadats with putBool
  • embedded/document: remove dead-code
  • embedded/document: add float support for doc engine
  • embedded/document: raw document validation
  • embedded/document: improve error handling
  • embedded/document: transactional collection update
  • embedded/document: support null values in indexed attributes
  • embedded/document: retrieval of raw document
  • embedded/document: move source code into dedicated files
  • embedded/document: use onclose callback to close the tx
  • embedded/document: return struct when auditing document history
  • embedded/document: add test to ensure key ordering in document during serialization
  • embedded/document: blob type not yet supported
  • embedded/document: catch key alredy exists error
  • embedded/document: catch tx read conflict error
  • embedded/document: translate table already exists error
  • embedded/document: minor var renaming
  • embedded/document: fix query stmt generator and add tests
  • embedded/document: leverage sqlengine lazy index contraint evaluation
  • embedded/document: binary serialization of doc payload
  • embedded/document: use query limit when searching
  • embedded/document: wip continue with improvements
  • embedded/document: wip continue with improvements
  • embedded/document: wip continue with improvements
  • embedded/document: wip improvements
  • embedded/document: add collection deletion api support
  • embedded/document: minor code simplification
  • embedded/document: add variable length support for multiple types
  • embedded/document: ensure order by clauses are used when deleting and updating
  • embedded/document: improve error messages
  • embedded/document: minor code adjustments
  • embedded/document: transactional collection and document creation
  • embedded/document: improve error messages
  • embedded/document: possibility to specify desc order when querying document history
  • embedded/document: add tests for blob type
  • embedded/document: avoid public dependency on sql
  • embedded/document: add test cases for collection on doc engine
  • embedded/document: change querier from BinBoolExp to CmpBoolExp
  • embedded/document: transactional document creation
  • embedded/document: add document id generation
  • embedded/document: typo in error message
  • embedded/htree: allow creation of empty hash trees
  • embedded/object: add document abstraction
  • embedded/object: add collection/database statements
  • embedded/sql: use read-only txs whenever possible
  • embedded/sql: make sql engine generic for object store
  • embedded/sql: limit and offset boundary validation
  • embedded/sql: minor numeric type adjustments
  • embedded/sql: implicit conversion support in limit and offset clauses
  • embedded/sql: simplified sql tx
  • embedded/sql: return closed sql txs
  • embedded/sql: implicit conversion from varchar to int and float types
  • embedded/sql: upgraded row reader
  • embedded/sql: ddl stmts register catalog mutation
  • embedded/sql: snapshot reuse improvements
  • embedded/sql: lazy index contraint validation
  • embedded/sql: WIP singledb sql engine
  • embedded/sql: transient context
  • embedded/sql: validate total key length at index creation time
  • embedded/sql: extend max key length to 512
  • embedded/sql: cancellable row reader
  • embedded/store: add in-line documentation for store options
  • embedded/store: validate Eh only when integrity checks are not disabled
  • embedded/store: addition of a cache for values
  • embedded/store: consume all tx content even if integrity checks are disabled
  • embedded/store: optional integrity checking when reading values
  • embedded/store: validate Eh only when integrity checks are not disabled
  • embedded/store: inline comments
  • embedded/store: fix typo in inline comment
  • embedded/store: validate gets using filters
  • embedded/store: MVCC read-set with boundaries
  • embedded/store: context propagation
  • embedded/store: mvcc validation only if another tx was processed
  • embedded/store: minor changes after rebasing from master
  • embedded/store: simplified dualproof implementation
  • embedded/store: skipIntegrityCheck parameter when reading data
  • embedded/store: minor code improvement
  • embedded/store: add min limit for truncation frequency
  • embedded/store: use syncSnapshot to validate ongoing txs
  • embedded/store: unify Read and ReadBetween
  • embedded/store: transient context
  • embedded/store: tx header is returned when fully committed
  • embedded/store: api upgrade
  • embedded/store: set ctx as first argument
  • embedded/store: readValueAt and exportTx improvements
  • embedded/store: update ReadBetween
  • embedded/store: contextualized transactions
  • embedded/store: inline comments
  • embedded/store: snapshot reuse improvements
  • embedded/store: set smaller default value for indexing bulk size
  • embedded/store: wip mvcc validations
  • embedded/store: simplified indexer initialization
  • embedded/store: multi-tx unsafe mvcc
  • embedded/store: set tx as closed upon cancellation
  • embedded/store: wip mvcc validations
  • embedded/store: set ctx as first argument
  • embedded/store: embedded meta attribute required if version is greater than 1
  • embedded/store: set embedded values mode as default one
  • embedded/store: backward compatible embedded value mode
  • embedded/store: optional integrity checking when reading values
  • embedded/store: preallocate tx header log files
  • embedded/store: wip mvcc validations
  • embedded/store: handle eof when reading last committed tx
  • embedded/store: support preallocated files when reading tx data
  • embedded/store: wip preallocated clog
  • embedded/store: option to prealloc files
  • embedded/store: optional integrity checking
  • embedded/store: further in-line documentation
  • embedded/store: make truncation validation tolerate entryless txs
  • embedded/store: allow tx without entries as long as it contains metadata
  • embedded/store: add hashValue as fixed 32 byte size
  • embedded/store: add test for TxOptions
  • embedded/store: add min limit for truncation frequency
  • embedded/store: multi-tx bulk indexing
  • embedded/store: fix default vlog cache size and add validation for hash when reading from cache
  • embedded/store: safe key copy for mvcc validation
  • embedded/store: improve log messages when discarding precommitted transactions
  • embedded/store: mvcc validations
  • embedded/store: fix rebase issue with readValueAt for vlogcache
  • embedded/store: multi-timed bulk insertions
  • embedded/store: clog file size adjustment only when preallocation is disabled
  • embedded/store: added more in-line comments
  • embedded/store: file preallocation not enabled by default
  • embedded/store: propagate context usage
  • embedded/tbtree: parametrize snapshot creation specs
  • embedded/tbtree: in-line documentation
  • embedded/tbtree: initialize tbtree with a non-mutated leaf
  • embedded/tbtree: getWithPrefix
  • embedded/tbtree: remove unnecessary kv sorting
  • embedded/tbtree: add in-line documentation
  • embedded/tbtree: minor code improvements
  • embedded/tbtree: rollback not needed as updates are made in a copy
  • embedded/tbtree: add in-line comments
  • embedded/tbtree: wip reduce allocs while updating inner node
  • embedded/tbtree: optimized bulk insertion
  • embedded/tbtree: optimize snapshot renewal
  • embedded/tbtree: wip optimized insertion
  • embedded/tbtree: variable renaming after rebasing
  • embedded/tools: upgrade embedded tools with transient context
  • embedded/watchers: return context error upon cancellation
  • embedded/watchers: set ctx as first arg
  • embedded/watchers: use context instead of cancellation channel
  • package/database: bunch of fixes and improvements in document engine
  • pkg: add more tests admin truncate command
  • pkg/api: expose db setting to enable file preallocation
  • pkg/api: use ErrrIs/ErrorContains in error checks
  • pkg/api: rename idFieldName to documentIdFieldName
  • pkg/api: annotate required fields
  • pkg/api: use of path parameters for document-related endpoints
  • pkg/api: expose new store indexing options
  • pkg/api: document update with path parameter
  • pkg/api: document api improvements
  • pkg/api: remove bool from tx metadata conversion
  • pkg/api: document api improvements
  • pkg/api: snapshot reuse attributes
  • pkg/api: search api improvements
  • pkg/api: return txID when inserting or updating documents
  • pkg/api: expose MVCC read-set settings
  • pkg/api: remove unsupported attribute from response messages
  • pkg/api: revert changes in swagger spec
  • pkg/api: re-generated httpclient with DeleteDocument endpoint
  • pkg/api: singular document path for audit and proof endpoints
  • pkg/api: manual adjustments post-code generation
  • pkg/api: expose replication settings for skipping integrity checks and indexing
  • pkg/api: swagger gen
  • pkg/api: value cache settings exposed
  • pkg/api: annotate primitive types as required
  • pkg/api: endpoint renaming
  • pkg/api: cleaner session id header
  • pkg/api: minor proof request renaming
  • pkg/api: authorization in swagger spec
  • pkg/api: re-generated httpclient
  • pkg/api: expose support for unsafe mvcc transactions
  • pkg/api: expose embeddedValue database setting
  • pkg/api: remove generated httpclient
  • pkg/api: buch of implementation improvements
  • pkg/api: revised document and authentication apis
  • pkg/api: annotated required message fields
  • pkg/api: add tx metadata conversion
  • pkg/api: re-generated httpclient
  • pkg/api: change retention period in TruncateDatabase message to int64
  • pkg/auth: add document update permissions
  • pkg/client: minor renaming in tx options
  • pkg/client: move heartbeater.go to pkg/client
  • pkg/client/cache: improve test coverage
  • pkg/database: upgrade after rebasing
  • pkg/database: remove object store db initialisation
  • pkg/database: upgraded reader specs
  • pkg/database: add document query struct to abstract request query
  • pkg/database: change objectEngine to documentEngine
  • pkg/database: add mvcc test for truncation, parse retention period using duration
  • pkg/database: add more tests for truncation
  • pkg/database: add document store db initialisation
  • pkg/database: updated APIs with schema updates
  • pkg/database: implement GetCollection API
  • pkg/database: remove search through first query
  • pkg/database: add query parser for object to generate sql expression
  • pkg/database: fix truncation deletion point checks in test
  • pkg/database: add search document api implementation for object store
  • pkg/database: create document/collection from schemav2 requests
  • pkg/database: context propagation
  • pkg/database: minor document renaming
  • pkg/database: add and implement object db interface
  • pkg/database: add DocumentUpdate api
  • pkg/database: minor code aligments
  • pkg/database: add object store
  • pkg/database: context propagation from server to embedded layer
  • pkg/database: proper calculation of source tx
  • pkg/database: create txs with default options
  • pkg/database: hard limit on page size
  • pkg/database: check encoded value is consistent with raw document
  • pkg/database: document verfication
  • pkg/database: use _obj to hold raw document payload
  • pkg/database: snapshot reuse changes
  • pkg/database: add document engine abstraction
  • pkg/integration: exportTx benchmarking
  • pkg/replication: replicator using bidirectional streaming
  • pkg/replication: improve options validation
  • pkg/replication: skip integrity check when exporting transactions
  • pkg/replication: context propagation
  • pkg/replication: wip stream replication - only async replication working
  • pkg/server: multi-grpc request context propagation
  • pkg/server: added inline comments
  • pkg/server: set default replication settings
  • pkg/server: context propagation from grpc api to embedded package
  • pkg/server: upgrades after rebasing from master
  • pkg/server: upgrade to new insecure credentials api
  • pkg/server: log error when closing document reader
  • pkg/server: support snapshot reuse
  • pkg/server: close all paginated readers on close of session
  • pkg/server: integrate document functions with server apis
  • pkg/server: add pagination test for document search
  • pkg/server: ensure document reader is closed when swithing pages
  • pkg/server: minor code reuse
  • pkg/server: add test successful load/unload of db with truncator
  • pkg/store: skipIntegrityChecks parameter when reading data
  • pkg/stream: handle eof when sending data
  • pkg/truncator: return error if expiration time hasn't been met
  • pkg/truncator: add context to Truncate method
  • pkg/truncator: refactor truncator process
  • pkg/verfication: document verification methods
  • pkg/verification: strengthen proof validations
  • pkg/verification: minor renaming
  • pkg/verification: document verification using embedded identifier
  • pkg/verification: use proto serialization
  • test/objects: add tests to create collections
  • test/objects: use httpexpect
  • test/objects: add more tests to create collection
  • test/perf: fix version value for flag
  • test/perf: add immudb version to influxdb data
  • test/perf: add runner to results for influxdb
  • test/perf-tests: remove runner check
  • test/perf-tests: use proxy on benchmark runner
  • test/performance: call cleanup method
  • test/performance-test-suite: fix replica directory path
  • test/performance-test-suite: add sync benchmarks
  • test/performance-test-suite: changed server concrete implementation
  • test/performance-test-suite: replicas are able to communicate with primary
  • test/performance-test-suite: send results to influxdb
  • test/performance-test-suite: extract json from results
  • test/performance-test-suite: add influxdb host and toke arguments
  • test/performance-test-suite: use temp folders for primary, replicas and clients
  • truncator: add more coverage for truncator

Features

  • add vlog truncation functionality
  • ci: change notification
  • embedded/document: count documents
  • embedded/object: add object store to embedded pkg
  • embedded/sql: Initial float support
  • embedded/sql: limit and offset as expressions
  • embedded/sql: sql transaction creation with options
  • embedded/sql: short casting syntax
  • embedded/sql: wip unsafe and optimized mvcc
  • embedded/sql: implicit type conversion of numeric types
  • embedded/store: tx creation with options
  • embedded/store: expose GetWithPrefixAndFilters
  • embedded/store: embeddable values
  • embedded/store: unsafe mvcc mode
  • embedded/store: embedded values option
  • embedded/store: read-only transactions
  • embedded/store: GetWithPrefixAndFilters
  • embedded/tbtree: multi-timed bulk insertions
  • pkg/api: document proof endpoint
  • pkg/api: improved replace documents endpoint
  • pkg/api: keepOpen parameter to instruct server to maintain a document reader in memory
  • pkg/api: count documents endpoint
  • pkg/client: optional tx options are now available during the creation process

Downloads

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

immudb Binaries

File SHA256
immudb-v1.5.0-RC1-darwin-amd64 adc27c7af5cea449c6066968ec142c3e2de9c4ed1cd4507b023874e6ac86f07b
immudb-v1.5.0-RC1-darwin-arm64 3395f8921ebdf4a57a4b63a488cd27bcfb05b4f3d7d104eb298bcffb7d30ce21
immudb-v1.5.0-RC1-freebsd-amd64 ee96402296490af7de3a90f6b44e681ba69f6f90ef5f727a90241219f1d6272e
immudb-v1.5.0-RC1-linux-amd64 d925e86463366f68c952b050cafa5475ca4be2c1f61432d91301c537c7387b76
immudb-v1.5.0-RC1-linux-amd64-fips 774cd076faa29708ffafaf249e8e37aab126c474736f2b8a933fd04214190ae2
immudb-v1.5.0-RC1-linux-amd64-static e3c63a8fd2ff32a1a97a96ed44b10e72e48901bf8ed7c5211e69e985b79bb2d2
immudb-v1.5.0-RC1-linux-arm64 0eed077d9a4492a968dd167c390ada2a2b1a299b5e0241bbccbe87ceb275a427
immudb-v1.5.0-RC1-linux-s390x 8dbfe322d21cef912b06040d0cf32a49106b9f6b7d486293fc787effe14d7b15
immudb-v1.5.0-RC1-windows-amd64.exe 3b5fb2e85039599524d72ef8750e5561c2227c706c994edfff3e9cda2bd1bca6

immuclient Binaries

File SHA256
immuclient-v1.5.0-RC1-darwin-amd64 23be535a67846b2d3701edfce14eb47b90dc2bbf16420133d7abcaf3a31bfa95
immuclient-v1.5.0-RC1-darwin-arm64 acc9496f541c3c109e6b42b253c427617f057a8a36577ab84fd7509a0da3e08f
immuclient-v1.5.0-RC1-freebsd-amd64 d6f001fd361290787b9a81481c358c307df66e11ddf8b9925a5de1162df8db7b
immuclient-v1.5.0-RC1-linux-amd64 121bab9fe5fe7851011048e71007724594167695b12a606381c330ed5258c2f9
immuclient-v1.5.0-RC1-linux-amd64-fips 28432d3b86234767a731aed96302285e0d1b94edf6947582a67b611fbbc7ec05
immuclient-v1.5.0-RC1-linux-amd64-static bdacddd65fb6e5c8052c8a0a11849c19de69ed52a5958085733c3dc68195e9f2
immuclient-v1.5.0-RC1-linux-arm64 f665821ec60244f6ce522e1c6fe3d18c6e43c06d90448765988cfc3877157e8a
immuclient-v1.5.0-RC1-linux-s390x bcc0af4ad11071e1cf668ed9f042df20ad44bc83ee424595e7aa9b1c6da3ba4b
immuclient-v1.5.0-RC1-windows-amd64.exe a61ce4e021b89b921975640dc519384b787c384c8560465d21387642f74ae121

immuadmin Binaries

File SHA256
immuadmin-v1.5.0-RC1-darwin-amd64 d0d055a5fb43dcbd4afc663ad84a8b5c39a832c6c223d02687809ada2aa11965
immuadmin-v1.5.0-RC1-darwin-arm64 3c88a2c178d96d7ebf6cfb2437f42cda4e88f10924f51c7c0344dc46aae451f9
immuadmin-v1.5.0-RC1-freebsd-amd64 763e2c0d2763220ed5205717a30872d4ed5d3c7699a28028c63ebeda44aadf9d
immuadmin-v1.5.0-RC1-linux-amd64 3c6f277dbb286399c6a44c99ac94d44c42f1424e7173e67931adc0d2a821056d
immuadmin-v1.5.0-RC1-linux-amd64-fips 6ff96208437539c723afe61825c13b38021b963dc5e9ea6195996a0eeb1467ff
immuadmin-v1.5.0-RC1-linux-amd64-static aba650e13e76f495999159f1ec4d18d5f6fab37b3c9652afbf2d2a0c5999b02d
immuadmin-v1.5.0-RC1-linux-arm64 649534fc458b1b3a7f06898aceedf111d37085a958f86fd45994d1bcdac738fa
immuadmin-v1.5.0-RC1-linux-s390x 0f947b5957f03514dc1761c81ec345f5135d43f926861c2c52e001ee4b11364f
immuadmin-v1.5.0-RC1-windows-amd64.exe d81f4e90af6fd7226d833e254164b51b787f517a35d5c01b572ed26e9beca474

v1.4.1

1 year ago

Release notes

We're pleased to announce new version of immudb: 1.4.1. This is a smaller maintenance release that fixes important issues discovered in the previous 1.4.0 release.

Important issues fixed

Along with this release, the go SDK for immudb comes with fixes to two security vulnerabilities (CVE-2022-36111 and CVE-2022-39199) that we've discovered through an internal security review. Those vulnerabilities only affect the client SDK that is part of the immudb release - for that reason make sure that the most recent go SDK version is used in your application.

More information about those vulnerabilities can be found in those adversaries:

Small improvements

Besides important fixes, this release also comes with improved naming convention related to replication options and an option to reset admin password without knowledge of the previous password. Such password reset is helpful in case the admin password is lost and can also be used to ensure there's a correct admin password set in cloud deployments such as Kubernetes.

Changelog

[v1.4.1] - 2022-11-16

Bug Fixes

  • Change replication-related terms in codebase
  • Change replication-related terms in tests
  • cmd: Rename replication flags to follow consistent convention
  • cmd/immudb: Better description of the --force-admin-password flag
  • cmd/immudb: Fix description of the force-admin-password flag
  • embedded/appendable: fsync parent directory
  • embedded/appendable: fsync parent folder in remote appedable
  • pkg: Rename replication-related fields in GRPC protocol
  • pkg/client: Delay server identity validation
  • pkg/client/cache: Add methods to validate server identity
  • pkg/client/cache: Validate server's identity
  • pkg/server: Remove includeDeactivated flag when querying for users
  • pkg/server/servertest: Add uuid to buffconn server
  • pkg/server/servertest: Fix resetting grpc connection
  • test/perf-test-suite: Avoid dumping immudb logo on perf test results file
  • test/performance-test-suite: Ensure results are shown after proper is finished
  • verification: Additional Linear proof consistency check
  • verification: Recreate linear advance proofs for older servers

Changes

  • pkg/server: Add logs for activities related to users
  • ci: migrate deprecating set-output commands
  • cmd/immudb: Allow resetting sysadmin password
  • docs/security: Be less specific about package version in examples
  • docs/security: Add resources for the linear-fake vulnerability
  • embedded/appendable: sync directories
  • embedded/store: Disable asynchronous AHT generation
  • embedded/store: Remove AHT Wait Hub
  • pkg/client: Document WithDisableIdentityCheck option
  • pkg/client/cache: Describe serverIdentity parameter
  • pkg/client/cache: Limit the hash part of the identity file name
  • pkg/client/state: Cleanup mutex handling in StateService
  • pkg/server: Warn if sysadmin user password was not reset
  • pkg/server: Better warning for unchanged admin password
  • test/performance-test-suite: Add summary to json output

Features

  • ci: fix message and input
  • ci: add runner name to mattermost message header
  • ci: simplify results extraction
  • ci: extract performance tests into separate workflow to be reused
  • ci: add scheduled daily test runs and send results to Mattermost
  • pkg/replication: Disable server's identity check in internal replication

Downloads

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

immudb Binaries

File SHA256
immudb-v1.4.1-darwin-amd64 120966d077c5ffca4bfd6745473a06c0ca219291adc49960108cc476e418cf5a
immudb-v1.4.1-darwin-arm64 d6469914115a58f9462c07b1d5aa0dbb1e777b80477d8baf8108bf51deabdd22
immudb-v1.4.1-freebsd-amd64 05a932c73bbb4305f6f7975a3bdc0f2198f8968776b16b84497584bb2742bc5a
immudb-v1.4.1-linux-amd64 a5ae370d6475026db7df5906ba037dc708b0a8bda52a0adf0d06c3dcdee587f1
immudb-v1.4.1-linux-amd64-fips db4477eb54d0437b9b145dfa9f77b593fc3a149906b0c5cc1c4ed87301786298
immudb-v1.4.1-linux-amd64-static 7b2c31569a513e072cefbdc7cbcf7c36421516230bf388a5156d95a5f3034b02
immudb-v1.4.1-linux-arm64 3d5f8784bdf652d2c067885d19b330d28bf497459b59a9358c0774dbff1f4d6f
immudb-v1.4.1-linux-s390x ee4efbcb850ab56da2fd3ed18226bd9808de404fd69ea425567952492e320e96
immudb-v1.4.1-windows-amd64.exe 707963320c94390ac9f9ce8d20d4f274baf636df789c4a65f3dc1a74bfd7f52c

immuclient Binaries

File SHA256
immuclient-v1.4.1-darwin-amd64 076c4f474e8f57d59ec20016d5f445205b80d16c0a7aebe6ae0b1d07310c5360
immuclient-v1.4.1-darwin-arm64 41bfe74f900e7bbd9cc57b89d3111edf9faa3f5ff4204995e352f02c78fa3c53
immuclient-v1.4.1-freebsd-amd64 286c48668fd772464217f26cfc30772819175e61452d860d44ad6ec04c437c79
immuclient-v1.4.1-linux-amd64 3ab44ad6d956a7f4ecff2da08738227e63cd4816ef7047dc63f671c6536969b7
immuclient-v1.4.1-linux-amd64-fips 75cbdc3614cb345af53e127aaaf4e7633fde4710f1ce1f1191c12b1d7ce4ab0f
immuclient-v1.4.1-linux-amd64-static 1f33880078225f56b253e663fb5d6e8ef1927d4bc9019ad8ef40a1863d99be7e
immuclient-v1.4.1-linux-arm64 30e736810ab08f74e4dbd22b9ddb369b321dde1c65b35879a3ed164c97e5e8a0
immuclient-v1.4.1-linux-s390x 6fe337a5d14511eda8cad40d7ec4f6c483bf5b2811229678833286cfa373a7a0
immuclient-v1.4.1-windows-amd64.exe 6790a7dc306f3669cb824774b45c140c9331b6a83ae8fb10629a7c58c495405d

immuadmin Binaries

File SHA256
immuadmin-v1.4.1-darwin-amd64 caf3308f916d43c79fc14c77c3452013f3580b4e7edfd0fe949219d945d3b245
immuadmin-v1.4.1-darwin-arm64 1a82fef2f16715591da9e74001a8db0d0838ce6e273cf08443e8261f89f6fedb
immuadmin-v1.4.1-freebsd-amd64 42679b08927dcbef84b18eac78391e78c29a5c817e9febf56bc18485ee39c5a5
immuadmin-v1.4.1-linux-amd64 24126f6699b3ae3fe18910c5a4fb45d996bc9237ebb92e91ee2916b8f8379b0c
immuadmin-v1.4.1-linux-amd64-fips b5b457b179384a72a6486a5e82f16f8bfe449b467e31373627f94a736f7d7afb
immuadmin-v1.4.1-linux-amd64-static e68a4fc4640082a67522c9a77f081ee513cc87732900b3f0dd644deda6a58843
immuadmin-v1.4.1-linux-arm64 9cc7d0283b4e7bd58c1daa39ec1c93c9bdaeb7818b11ac5ac88a8d91be3ba658
immuadmin-v1.4.1-linux-s390x 22408bc7d8e0cef8378fcff8b1079bfa574e0336e5ca77f77facf21c67e3f24e
immuadmin-v1.4.1-windows-amd64.exe 2fa628855a0c17aecb5cc675297a1bf217bbf595f40701ed740d6351279f7e2d