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