Releases: codenotary/immudb
v1.9DOM.2
What's Changed
Fixes:
- fix: source /etc/sysconfig/immudb on AWS EC2 startup by @SimoneLazzaris in #1875
- fix: apply fix for CVE-2023-44487 by @SimoneLazzaris in #1908
Changes:
- Update README.md by @jeroiraz in #1874
- feat: automatically convert uuid strings and byte slices to uuid values by @tauu in #1870
- feat s3role rebased by @jeroiraz in #1876
- chore(deps): bump golang.org/x/crypto from 0.14.0 to 0.17.0 by @dependabot in #1893
- license update to BSL by @SimoneLazzaris in #1905
- chore(deps): bump google.golang.org/protobuf from 1.31.0 to 1.32.0 by @dependabot in #1909
- chore(deps): bump google.golang.org/grpc from 1.57.0 to 1.57.1 in /test/e2e/truncation by @dependabot in #1903
- chore(deps): bump actions/download-artifact from 3 to 4 by @dependabot in #1892
- chore(deps): bump actions/upload-artifact from 3 to 4 by @dependabot in #1891
- chore(deps): bump actions/setup-go from 3 to 5 by @dependabot in #1887
Full Changelog: 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
What's Changed
- Update README.md by @jeroiraz in #1874
- fix: source /etc/sysconfig/immudb on AWS EC2 startup by @SimoneLazzaris in #1875
- feat: automatically convert uuid strings and byte slices to uuid values by @tauu in #1870
- feat s3role rebased by @jeroiraz in #1876
- chore(deps): bump golang.org/x/crypto from 0.14.0 to 0.17.0 by @dependabot in #1893
Full Changelog: v1.9DOM.1...v1.9DOM.2-RC1
v1.9DOM.1
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
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
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. (#1796)
Historical SQL queries
Row history can be queried using SQL. (#1804)
Improved Document Audit endpoint
The Document Audit endpoint now displays the timestamp and the username associated with each change made to a document during revisions..
Furthermore, it is also possible to audit revisions of documents without retrieving the actual documents themselves (omitPayloads
parameter)
Index Management
Prior to this release, index creation at the SQL and Document Data Model levels was only possible at the point of initialization, i.e. when a table or collection was empty. Since this release, this limitation has been overcome and non-unique indexes can now be created at any time, and they can also be physically deleted at any time.
More SQL statements
The addition of SQL statements for renaming tables and removing them from the database has been made. In addition, it is possible to add and remove columns from a table at any time.
Changelog
[v1.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 | f468c2f38f8f17083a19ab45d7a7399fb4d04[12](https://github.com/codenotary/... |
v1.9.0-RC2
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. (#1796)
Historical SQL queries
Row history can be queried using SQL. (#1804)
Improved Document Audit endpoint
The Document Audit endpoint now displays the timestamp and the username associated with each change made to a document during revisions..
Furthermore, it is also possible to audit revisions of documents without retrieving the actual documents themselves (omitPayloads
parameter)
Index Management
Prior to this release, index creation at the SQL and Document Data Model levels was only possible at the point of initialization, i.e. when a table or collection was empty. Since this release, this limitation has been overcome and non-unique indexes can now be created at any time, and they can also be physically deleted at any time.
More SQL statements
The addition of SQL statements for renaming tables and removing them from the database has been made. In addition, it is possible to add and remove columns from a table at any time.
Changelog
[v1.9.0-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](https://github.com/codenotary/immu... |
v1.9.0-RC1
Release notes
Introducing immudb 1.9.0, a new release with several new features, which we are very excited about!
Swagger UI
Document Data Model can be accessed through a Swagger UI. Providing the API to interact with the document data-model API in a simple and intuitive way.
UUID datatype
Both the SQL data model as well as the Document data model now support this useful datatype. (#1796)
Historical SQL queries
Row history can be queried using SQL. (#1804)
Improved Document Audit endpoint
The Document Audit endpoint now displays the timestamp and the username associated with each change made to a document during revisions..
Furthermore, it is also possible to audit revisions of documents without retrieving the actual documents themselves (omitPayloads
parameter)
Index Management
Prior to this release, index creation at the SQL and Document Data Model levels was only possible at the point of initialization, i.e. when a table or collection was empty. Since this release, this limitation has been overcome and non-unique indexes can now be created at any time, and they can also be physically deleted at any time.
More SQL statements
The addition of SQL statements for renaming tables and removing them from the database has been made. In addition, it is possible to add and remove columns from a table at any time.
Changelog
[v1.9.0-RC1] - 2023-10-11
Bug Fixes
- correct immudb name in readme
- allow the local id to be used if present even if remote flag is on
- apply fixes discussed in PR
- insertion ts for key-values should not be equal to the current root ts
- Makefile: remove webconsole tag from immuclient/immuadmin builds
- embedded/appendable: explicit freebsd build clauses
- embedded/document: ensure multi-indexing is enabled
- embedded/document: avoid waiting for tx to be committed
- embedded/sql: advance position when decoding value at deleted column
- embedded/store: use correct index path
- embedded/store: handle transient key update
- embedded/store: read lock when fetching indexer
- embedded/store: precommitted transaction discarding recedes durable state
- embedded/store: read lock when pausing indexers
- embedded/tbtree: snapshot validation
- embedded/tbtree: consider offset for history count calculation
- embedded/tbtree: proper _rev calculation
- pkg/server: buffer reuse
Changes
- build with swaggerui
- unnecessary use of fmt.Sprintf
- use copy instead of a loop
- align covered packages when pulling and merging
- unnecessary use of fmt.Sprintf
- cmd/immuclient: display raw column selector in table header
- deps: bump golang.org/x/net from 0.10.0 to 0.12.0
- deps: bump golang.org/x/crypto from 0.10.0 to 0.11.0
- deps: bump golang.org/x/crypto from 0.13.0 to 0.14.0
- deps: bump golang.org/x/crypto from 0.12.0 to 0.13.0
- deps: bump golang.org/x/sys from 0.9.0 to 0.10.0
- deps: bump golang.org/x/net from 0.14.0 to 0.15.0
- deps: bump google.golang.org/grpc
- deps: bump golang.org/x/sys from 0.11.0 to 0.12.0
- deps: bump google.golang.org/grpc in /test/e2e/truncation
- deps: bump google.golang.org/grpc
- deps: bump golang.org/x/net from 0.15.0 to 0.17.0
- deps: bump github.com/grpc-ecosystem/grpc-gateway/v2
- deps: bump securego/gosec from 2.15.0 to 2.17.0
- deps: bump golang.org/x/sys from 0.10.0 to 0.11.0
- deps: bump golang.org/x/crypto from 0.7.0 to 0.10.0
- deps: bump golang.org/x/net from 0.12.0 to 0.13.0
- deps: bump google.golang.org/grpc from 1.55.0 to 1.56.2
- deps: bump golang.org/x/net from 0.13.0 to 0.14.0
- embedded/document: register username when applying a change
- embedded/document: enable multi-indexing in doc engine tests
- embedded/document: encoded document using valRef
- embedded/document: attach username when auditing document
- embedded/sql: post-commit physical index deletion
- embedded/sql: uuid decoding
- embedded/sql: improve internal index naming
- embedded/sql: use declared constant for fixed ids
- embedded/sql: insertion benchmark
- embedded/sql: historical queries over primary index
- embedded/sql: dynamic indexing
- embedded/sql: deletion of primary index path
- embedded/sql: multi-snapshop mvvc
- embedded/sql: temporal queries with multi-indexing
- embedded/sql: transactional drops
- embedded/sql: unique index creation supported on empty tables
- embedded/sql: support parenthesis as datatype constraint delimiter
- embedded/store: multi-indexing
- embedded/store: ensure index is erased from disk
- embedded/store: wip multi-indexing
- embedded/store: history returning value refs
- embedded/store: indexer alloc its tx
- embedded/store: remove metastate
- embedded/store: history with rev count
- embedded/store: injective index mapper
- embedded/store: ensure snapshot up to date
- embedded/store: indexing callbacks
- embedded/store: key reader including historical entries
- embedded/store: indexing prefix
- embedded/store: entry mapper
- embedded/tbtree: value-preserving history
- embedded/tbtree: hcount serialization
- embedded/tbtree: fetching historical values
- embedded/tbtree: wip value-preserving history
- embedded/tbtree: value-preserving history
- embedded/tbtree: context propagation
- pkg/api: adjust doc serializations to match verification
- pkg/api: endpoint improvements
- pkg/client: add setAll to immuclient mock
- pkg/client: use buf for msg exchange
- pkg/database: context propagation
- pkg/database: context propagation
- pkg/database: fix remote storage paths
- pkg/database: increase delay when tx is not present
- pkg/database: keept reading from specific tx
- pkg/database: multi-indexing database
- pkg/database: doc audit without retrieving payloads
- pkg/database: register username when applying a change
- pkg/database: fix remote storage paths
- pkg/database: mandatory wait with async replication
- pkg/database: kv count
- pkg/server: register username when applying a change in doc apis
- pkg/server: minor code adjustment
- pkg/stdlib: non transactional ddl stmts
- pkg/truncator: use embedded/logger package
- pkg/verification: minor doc verification improvements
- swagger: use embedded logger package
- tests: Tests cleanup
Code Refactoring
- pkg/logger: move logger from pkg to embedded
Features
- update readme
- prevent identifier from creation when use external id option
- pass logger to heartbeater
- add flag for using external id as a main one
- embedded/document: register user when creating collection
- embedded/document: doc audit without retrieving payloads
- embedded/document: remove field from collection
- embedded/document: add field to collection
- embedded/sql: async multi-indexing
- embedded/sql: extra metadata when creating tx
- embedded/sql: include _rev column in historical queries
- embedded/sql: drop index and table stmts
- embedded/sql: table history
- embedded/sql: query including historical rows
- embedded/sql: dynamic multi-indexing
- embedded/sql: wip uuid datatype support
- embedded/sql: drop column stmt
- embedded/store: use index attribute in kv metadata
- embedded/store: getBetween
- embedded/store: extra tx metadata
- embedded/store: transactionaless multi-indexing
- embedded/tbtree: getBetween
- embedded/tbtree: key reader supporting historical values
- pkg/api: docAudit returning timestamp and possibility to omit payloads
- pkg/api: re-enable swagger ui
- pkg/api: include username in document audit response
- pkg/api: add field and remove field endpoints
- pkg/database: add user when creating collection
- pkg/server: add user when creating collection
Reverts
- chore: remove initial swagger support
Downloads
Docker image
https://hub.docker.com/r/codenotary/immudb
immudb Binaries
File | SHA256 |
---|---|
immudb-v1.9.0-RC1-darwin-amd64 | 0de7525bcb60f7859f4944bd33469251292799c79282fae9b38d701ab1f6a960 |
immudb-v1.9.0-RC1-darwin-arm64 | ea33b9c98de5421356b7bbfae90913125a78d6fae7665e3a29952d65529fbbde |
immudb-v1.9.0-RC1-freebsd-amd64 | 9c8e2a3c8c54bce68f56a85b7d0adfe1b4e9624ace2513e6b7b119c9ffbb0c08 |
immudb-v1.9.0-RC1-linux-amd64 | d4d6217ece830105f0e57a0ae1b756b522d6afc024eada5535d18f6e35b86003 |
immudb-v1.9.0-RC1-linux-amd64-fips | 18288be1987b9095831bf54018cb1e82829a9a9e1f4316180fbad37f5710d700 |
immudb-v1.9.0-RC1-linux-amd64-static | 2ef738f413a9ef3d3af5f53cb343155ec69c79d81feb329dd32c84ce5eff12ca |
immudb-v1.9.0-RC1-linux-arm64 | de4910464b103e932355f02e267834ed8d2e338eb2ca81f0f1b2ca1be543bdf4 |
[immudb-v1.9.0-RC1-linux-s390... |
v1.5.0
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 git...
v1.5.0-RC1
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
- ...
v1.4.1
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 |