immudb v0.6.0-RC1 Release Notes
Release Date: 2020-05-11 // almost 4 years ago-
๐ Changelog
[v0.6.0-RC1] - 2020-05-11
๐ Bug Fixes
- ๐ change user message when new password is identical to the old one
- โ remove common package
- ๐ use grpc interceptors for authentication
- place password input on the same line with the password input label
- 0๏ธโฃ store auth tokens in user home dir by default and other auth-related enhancements
- ๐ fix structured values integration
- ๐ disabling CGO to removes the need for the cross-compile dependencies
- โ remove useless error. dgraph-io/badger@c6c1e5e
- return correct error in safeZAdd handler
- upadating takama/daemon to fix freebsd compilation. closes #160
- split main fails in separate folders
- ๐ fix immugw immud services in windows os
- ๐ง improving config management on linux and improved usage message
- โ add immugw exec to docker image
- wrap root_service with mutex to avoid dirty read
- ๐ fix env vars. Switch to toml
- prevent immuadmin users other than immu to login
- env vars names for immudb port and address in CLIs help
- โจ enhance authentication and user management
- environment variables
- ๐ fix bug related to retrieve a versioned element by index
- ๐ use arguments instead of flags for user create, change-password and deleted
- ๐ fix reading user input for passwords
- return verified item on safeset
- code format for multiple files to comply with Go coding standards
- /pkg/gw: manage 0 index value in history
- /pkg/gw: manage 0 index value in safeget
- /pkg/gw: fix guard
- cmd: get and safeget error for non-existing key
- cmd: remove short alias for tokenfile flag
- cmd/immu: fix backup file opening during restore
- cmd/immu: Fix newline at the end of restore/backup success message
- cmd/immu: set auth header correctly
- cmd/immuadmin: generate admin user if not exists also at 1st login attempt with user immu
- cmd/immuadmin: verify old password immediately during change-password flow
- cmd/immuadmin: fix uninstall automatic stop
- cmd/immuadmin/command/service: fix windows helper import
- cmd/immuadmin/command/service: fix group creation
- cmd/immuadmin/command/service: fix config files in windows
- immuclient: do not connect to immudb server for version or mangen commands
- immudb/command: fix command test config file path
- immupopulate: do not connect to immudb server for version or mangen commands
- pkg/api/schema: fix typos
- pkg/client: fix stream closing to complete restore
- pkg/client: fix cleaning on client tests
- pkg/client: fix root file management
- pkg/client/cache: manage concurrent read and write ops
- pkg/gw: fix hash calc for reference item
- pkg/gw: fix lock release in case of errors
- pkg/gw: ensure computed item's matches the proof one for safeset
- pkg/gw: fix error handling in safe method overwrite
- pkg/gw: manage concurrent safeset and get requests
- pkg/gw: improve immugw logging
- pkg/gw: use leaf computed from the item
- pkg/gw: fix gw stop method
- pkg/gw: refactor overwrite safe set and get request in order to use dependencies
- pkg/server: correct error checking
- pkg/server: improve immudb logging
- pkg/store: correct health check error comparison
- pkg/store: correct gRPC code for key not found error
- pkg/store: badger's errors mapping
- pkg/store: truncate set to true for windows
- pkg/store: fix #60.
๐ Changes
- get rid of password generating library
- โก๏ธ update .gitignore
- ๐ง linux services are managed by immu user
- โ add missing dep
- โก๏ธ update deps
- simplify error during first admin login attempt
- marshal options to JSON in String implementations
- grpc-gateway code generation
- โ Add swagger generation command
- ๐ฆ switch to 2.0.3 go_package patched badger version
- simplify .gitignore
- import badger protobuffer schema
- โ rename immutestapp to immutest
- โก๏ธ Update makefile in order to use badeger on codenotary fork
- ๐ fix compilation on OS X
- 0๏ธโฃ Switch services default ports
- ๐ improve configuration features on services management
- prefix version-related variable holding common ldflags so that it matches the convention used for the other version-related variables
- โ add pid params in config
- ๐ fix typo in dump command help
- โ remove default version value from immu* commands
- ๐ change default output folder for man pages generation
- โ rename immupopulate to immutestapp
- โ remove app names from ldflags in Makefile, update immudb description in help
- Switch config format to toml
- ๐ Fix namings conventions on immud command config properties
- โ Remove man pages
- ๐ Fix coding style
- ๐ move token file name into options and some cleanup
- ๐จ Print immud running infos properly
- ๐ merge code changes related to histograms and detached server options
- ๐จ refactor immuadmin and stats command to allow dependency injection of immu client
- ๐ change label from "latency" to "duration" in immuadmin statistics
- โ remove types.go from immuadmin statistics cmd
- โก๏ธ rename functions that update metrics
- โ integrate latest changes from master branch
- โก๏ธ update termui transitive dependencies
- ๐ move immuadmin metrics struct to dedicated file
- ๐จ rewrite immuadmin client to align it with latest refactorings
- ๐ fix project name in CONTRIBUTING.md
- Suppression of ErrObsoleteDataFormat in order to reduce breaking changes
- ๐ fix typo in raw command usage help
- โช rename backup to dump, and disable restore
- info if starting server with empty database
- ๐ use exact number of args 2 for set and safeset
- Set correct data folder and show usage in config. closes #37
- instructions after make
- โก๏ธ update default dbname in server config
- โ remove immuclient from default make target
- 0๏ธโฃ protect default data folder from being inserted in repo
- ๐ change config path in server default options
- ๐ change default immudb data folder name from "immudb" to "immudata"
- ๐ rename binaries and configs
- โ rename test config file
- โ remove codenotary badger fork requirement
- ๐ rename command "consistency" to "verify"
- โ remove codenotary badger fork requirement
- ๐ change auth header to string
- ๐ rename command "verify" to "check-consistency"
- simplify auth options in immu client
- ๐ improve login help and cleanup irelevant TODO comment
- โ add host and version to swagger json
- ๐ move server password generation to server start
- get rid of locks on immuclient during login and user during set password
- ๐ use all lowercase for immudb everywhere it is mentioned to the user
- Switch config format to ini
- cmd: add env vars to commands help and man
- cmd: addutility to manage a y/n dialog
- cmd: enhance unauthenticated message
- cmd/immu: Add reference in command line
- cmd/immuadmin: set titles to green and use grid width instead of terminal width to determine plots data length
- cmd/immuadmin: remove duplicate dependency
- cmd/immuadmin: remove log files in uninstall
- cmd/immuadmin: improve code organization and help messages
- cmd/immuadmin: remove unused varialble in user command
- cmd/immuadmin: extract to functions the init and update of plots in visual stats
- cmd/immuadmin: fix examples alignment in user help
- cmd/immuadmin: remove ValidArgsFunction from user sub-command
- cmd/immuadmin: improved immuadmin service ux
- cmd/immuadmin: fix build on freebsd
- cmd/immuadmin/commands: fix typo in error message and remove useless options
- cmd/immuadmin/commands: fix empty imput and improve immugw install ux
- cmd/immugw: overwrite safeZAdd default handler
- cmd/immugw: Use default options values
- cmd/immugw: overwrite safeReference default handler
- immuclient: move pre and post run callbacks to sub-commands
- pkg/auth: improve local client detection
- pkg/client: add reference client command
- pkg/client: add ZAdd and ZScan client methods
- pkg/gw: fix default config path for immugw
- pkg/gw: refactor handlers in order to use cache adapters
- pkg/gw: remove useless check on path
- pkg/gw: manage panic into http error
- pkg/server: return descriptive error if login gets called when auth is disabled
- pkg/server: keep generated keys (used to sign auth token) only in memory
- pkg/store: switch to gRPC errors with codes
๐จ Code Refactoring
- ๐จ refactor packages to expose commands
- โ remove immuclient initialization from root level command
- โ Removed needless allocations and function calls, Rewrote Immuclient package layout
- config is managed properly with cobra and viper combo. closes #44
- Structured immugw and handling SIGTERM. closes #33
- pkg/tree got ported over to its own external repo codenotary/merkletree
- pkg/store: prefix errors with Err
๐ Features
- โ add safeget, safeset, safereference and safezadd to the CLI client
- โ add mtls to immud
- โ add version to all commands
- โ Add config file. Closes #36 closes #37
- โ add mtls to immugw
- โ add mtls certificates generation script
- 0๏ธโฃ always use the default bcrypt cost when hashing passwords
- implement user management
- โ Add capabilities to run commands in background. Closes #136 closes #106
- hide some of the widgets in immuadmin statistics view if the server does not provide histograms
- โ add --no-histograms option to server
- complete implementation of visual statistics in immuadmin
- ๐ change client "last query at" label
- โ add "client last active at" metric
- โ add uptime to metrics
- โ add immuadmin-related rules to makefile
- ๐ create a new build process #41
- โ add text and visual display options to immuadmin statistics
- โ Add multiroot management, Add client mtls, client refactor. closes #50 closes #80
- โ Add config file to immu
- ๐ improve metrics
- โ add immuadmin client (WiP)
- โ add Prometheus-based metrics
- โ Add raw safeset and safeget method
- โ Add IScan and improve ScanByIndex command. Closes #91
- โ add insertion order index and tests. closes #39
- โ add current command. Closes #88
- โ Add structured values components
- structured value
- close immuadmin visual statistics also on
- โ add config item to toggle token-based auth on or off
- โ add token based authentication
- โ add number of RCs per client metric
- โ Add config and pid file to immugw
- cmd: make unauthenticated message user-friendly
- cmd/immu: fix CLI output of safe commands
- cmd/immu: add backup and restore commands
- cmd/immu: Add ZAdd and ZScan command line methods
- cmd/immu: add safeget, safeset, safereference and safezadd commands to immu CLI
- cmd/immu: enhance backup and restore commands by writing/reading proto message size to/from the backup file
- cmd/immuadmin: add configuration management in service command
- cmd/immuadmin: add services management subcommand
- cmd/immud: Add pid file parameter
- cmd/immugw: add immugw command
- cmd/immugw: add logger
- cmd/immupopulate: add immupopulate command
- immuadmin: show line charts instead of piecharts
- immuadmin: add dump command
- pkg/api/schema: add autogenerated grpc gw code
- pkg/api/schema: add backup and restore protobuffer objects
- pkg/api/schema: add safeget set patterns export
- pkg/api/schema: add reference and safeReference grpc messages
- pkg/api/schema: add zadd, safezadd and zscan grpc messages
- pkg/client: add backup and restore and automated tests for them
- pkg/client: move keys reading outside ImmuClient and also pass it context from outside
- pkg/client: use dedicated structs VerifiedItem and VerifiedIndex as safe functions return type
- pkg/client: add root cache service
- pkg/client: add new RootService field to ImmuClient, initialize it in connectWithRetry and use it in Safe* functions
- pkg/client/cache: add cache file adapter
- pkg/gw: add safeset get overwrites
- pkg/gw: add safeZAdd overwrite
- pkg/gw: add reference and safeReference rest endpoint
- pkg/logger: Add file logger
- pkg/server: Add backup and restore handlers
- pkg/server: add reference and safeReference handlers
- pkg/server: Add pid file management
- pkg/server: add ZAdd, safeZAdd and zscan handlers
- pkg/store: add ZAdd, safeZAdd and ZScan methods and tests
- pkg/store: add reference and safeReference methods and tests
- pkg/store: Add store backup and restore methods and tests
v0.0.0-20200206 - 2020-02-06
๐ Bug Fixes
- client dial retry and health-check retry counting
- missing dependencies
- โ address parsing
- apply badger options in bm
- 0๏ธโฃ client default options
- typo
- ๐ pin go 1.13 for CI
- nil out topic on server shutdown
- get-batch for missing keys
- server re-start
- protobuf codegen
- rpc bm startup
- bm: allow GC
- bm/rpc: await server to be up
- client: missing default options
- db: correct treestore data race
- db: correct cache pre-allocation
- db: workaround for tree indexes when reloading
- db: cannot call treestore flush on empty tree
- db: correct tree cache positions calculation at boostrap
- db: include key as digest input
- db: correct tree width calculation at startup
- db: default option for sync write
- db/treestore: revert debug if condition
- pkg/server: correct nil pointer dereferences
- pkg/server: correct nil pointer dereference on logging
- pkg/store: correct inclusion proof call
- pkg/store: correct key prefix guard
- pkg/store: add miss condition to limit scan result
- server: avoid premature termination
- tools/bm: stop on error and correct max batch size
- tree: benchmark timers
- tree:
at
cannot be equal to width - tree: handle missing node in mem store
- tree: correct root of an empty tree
๐ Changes
- ๐จ server refactoring
- ๐ rename module
- editorconfig
- gitignore
- gitignore immu binaries
- gitignore vendor
- โฌ๏ธ bumps badger to v2.0.1
- โก๏ธ update .gitignore
- โ remove stale files
- โก๏ธ update copyright notice
- gitignore bm binary
- gitignore bm binary
- ๐ change default data dir to "immustore"
- gitignore working db directory
- nicer error reporting on client failure
- immu client cleanup
- client option type
- ๐ณ docker cleanup
- ๐จ server options refactoring
- ๐ท trigger CI on PRs
- ๐ move server options to type
- โฌ๏ธ bump badger to latest v2
- โ remove dead client code
- license headers
- ๐จ server options refactoring
- client connection wording
- license headers
- api cleanup
- ๐ฒ logging cleanup + thresholds
- more load on rpc bm
- ๐ improved logging
- simplified client interface
- extract client health check error
- ๐จ client error refactoring
- missing license headers
- ๐จ refactor rpc bms
- โ add license headers
- ๐จ refactor server logging
- ๐ move client options to type
- strip bm binary
- ๐ make all target
- clean bm binary
- ๐ improved server interface
- rpc bm cleanup
- minor cleanup in bench.py
- ๐ new db constructor with options
- api: add index in hash construction
- bm: fine tuning
- bm/rpc: print error
- client: add ByIndex rpc
- cmd/immu: align commands to new APIs
- db: return item index
- db: correct logging messages
- db: default options
- db: treestore improvements
- db: switch to unbalanced tree test
- db: add default logger
- db: treestore entries discarding and ordering
- db: fine tuning
- immu: improve printing
- immu: improved membership verification
- logger: expose logging level
- pkg/api: add Hash() method for Item
- pkg/api/schema: get new root from proof
- pkg/api/schema: relax Proof verify when no prev root
- pkg/api/schema: refactor bundled proof proto message
- pkg/api/schema: add Root message and CurrentRoot RPC
- pkg/db: split data and tree storage
- pkg/store: code improvements
- pkg/store: add error for invalid root index
- pkg/tree: add verification for RFC 6962 examples
- pkg/tree: improve comment
- schema: add index
- server: add ByIndex rpc
- tools: add nimmu hacking tool
- tools: benchmark
- tools: armonize comparison settings
- tools: no logging needed for nimmu
- tools: add makefile target for comparison
- tools: benchmark
- tools/bm: correct method signature to accomodate indexes
- tools/nimmu: improve input and output
- tree: correct returned value for undefined ranges
- tree: clean up map store
- tree: correct MTH test var naming
- tree: reduce testPaths
- tree: remove unnecessary int conversion
- tree: add map store test
- tree: add print tree helper for debugging
- tree: add map backed mem store for testing
- tree: add IsFrozen helper
๐จ Code Refactoring
- ๐ change APIs according to the new schema
- ๐ฆ reviewed schema package
- rname "membership" to "inclusion"
- ๐ use []byte keys
- "db" pkg renamed to "store"
- ๐ logging prefixes and miscellany renamed according to immustore
- env vars prefix renamed to IMMU_
- ๐ rename module to immustore
- db: new storing strategy
- db: use Item on ByIndex API
- db: use ring buffer for caching
- pkg/tree: improve coverage and clean up
- server: metrics prefix renamed to immud_
- tree: AppendHash with side-effect
- tree: testing code improvement
- tree: switch to unbalanced tree
- tree: reduce lookups
- tree: remove unnecessary Tree struct and correct int sizes
- tree: simplify Storer interface
- tree: trival optimization
๐ Features
- extract rpc bm constructor
- ๐ initial draft for storing the tree alongside the data
- immu client
- ๐ Makefile
- basic protobuf schema
- poc transport format
- poc grpc server
- poc grpc client
- poc server wiring
- poc client wiring
- topic wiring
- poc topic get
- ๐ฆ expose metrics
- server topic get wiring
- poc cli args
- ๐ client-side performance logs
- transport schema cleanup
- ๐ณ docker
- server options
- client options
- server options for dbname
- ๐ป immud command line args
- client cli args
- ๐ฒ logging infrastructure
- ๐ set stdin support
- โ add healtcheck command
- client type
- treestore with caching
- ๐ make bm
- batch-set
- no healthcheck/dial retry wait-period when set to 0
- bm tooling
- ๐ bm improvements (rpc-style and in-process api calls)
- scylla comparison
- immud health-check
- batch get requests
- ๐จ pretty-print client options
- client connect and wait for health-check
- stateful client connection
- return item index for get and set ops
- ๐ฆ expose dial and health-check retry configuration
- apply env options for server
- apply env options for client
- server options from environment
- client options from environment
- client connect with closure
- client errors extracted
- named logger
- bm memstats
- CI action
- server health-check
- db health-check
- set-batch bm
- client set-batch
- key reader
- ๐ initial project skeleton
- api: add item and item list data structure
- api: add membership proof struct
- client: membership command
- client: add history command
- cmd/immu: scan and count commands
- db: add membership proof API
- db: async commit option
- db: add history API to get all versions of the same key
- db: get item by index
- pkg/api/schema: SafeGet
- pkg/api/schema: consistency proof API
- pkg/api/schema: add SafeSet to schema.proto
- pkg/api/schema: ScanOptions
- pkg/api/schema: added Scan and Count RPC
- pkg/client: Scan and Count API
- pkg/client: consistecy proof
- pkg/server: SafeSet RPC
- pkg/server: SafeGet RPC
- pkg/server: consistency proof RPC
- pkg/server: CurrentRoot RPC
- pkg/server: Scan and Count API
- pkg/store: SafeGet API
- pkg/store: count API
- pkg/store: consistency proof
- pkg/store: SafeSet
- pkg/store: CurrentRoot API
- pkg/store: range scan API
- pkg/tree: consistency proof
- pkg/tree: Path to slice conversion
- pkg/tree: consistency proof verification
- pkg/tree: test case for RFC 6962 examples
- ring: ring buffer
- schema: add message for membership proof
- server: add membership rpc
- server: support for history API
- tree: audit path construction
- tree: membership proof verification
- tree: Merkle Consistency Proof reference impl
- tree: Merkle audit path reference impl
- tree: Storer interface
- tree: draft implementation
- tree: MTH reference impl