To upgrade from an earlier version to this release you should backup the leader node, and load the resultant database dump into a new 5.0 leader node. Check out BACKUP.md for more details.
- PR #406, PR #408: CLI supports Basic Auth credentials. Fixes issue #369. Thanks @joaodrp.
- PR #414, PR #416: Support display of query timings in CLI. Fixes issue #317. Thanks @joaodrp.
- PR #436: Add backup command to CLI. Fixes issue #432. Thanks @eariassoto.
- PR #444: Add basic expvar statistics to the Store.
- PR #450: Add restore command to CLI. Fixes issue #439. Thanks @eariassoto.
- PR #451, PR #453: Support dumping database in SQL text format via the API. Fixes issue #393.
- PR #455: Add dump-as-SQL-text command to CLI.
- PR #462: Add Raft metadata to responses to requests that modify Raft log.
- PR #493, PR #504: Full connection control and distributed transactions over HTTP.
- PR #501: Replace use of term "transaction" with "atomic".
- PR #527: rqlite CLI now supports command history. Thanks @rhnvrm.
- End-to-end integration test added. Written in Python, it is automatically run by CircleCI as the committed source changes.
- PR #377: Upgrade consensus system to Hashicorp Raft v1.0.
- PR #401: Always try to close temporary database file after backup. Fixes issue #400. Thanks @sum12.
- PR #411, PR #412: Remove any pre-existing node with a given ID, if that node rejoins with a new IP address. Fixes issue #409.
- PR #425: By default use Raft network address as node ID. Fixes issue #422.
- PR #430: Close Raft log on Store close. Fixes issue #429.
- PR #431: Add function to Store that returns Raft leader ID.
- PR #434: Broadcast Cluster metadata via Raft consensus mechanism. Fixes issue #138.
- PR #437, PR #438: Make keys in diagnostic status output more consistent.
- PR #448: Support Store aborting transaction on any Execute error. Fixes issue #385.
- PR #452: Move to Go 1.10.
- PR #457: Implement new connection-oriented database layer.
- PR #463: Fix DSN key in Status output.
- PR #461: Write node backup directly to HTTP response writer. Thanks @sum12.
- PR #471: Cache most recent Raft log entries.
- PR #466: Port HTTP service to new connection-oriented design.
- PR #486: Store connections in Raft snapshot.
- PR #491: Add varadic utility functions to Auth credential store.
- PR #494: JSON types are stored as text by SQLite. Fixes issue #492.
- PR #518: Move testing to CircleCI 2.0.
- PR #521: Don't ignore any Join error, return it.
- PR #531: Protect against possible nil pointer. Thanks @runsisi
- Allow the Raft election timeout to be set.
- Allow a node to be re-added with same IP address and port, even though it was previously removed. Fixes issue #534.
- PR #397, PR #399: Support hashed passwords. Fixes issue #395. Thanks @sum12.
- PR #389: Log Store directory path on startup.
- PR #392: Return redirect if node removal attempted on follower. Fixes issue #391.
- PR #383: Fix unit tests after underlying SQLite master table changes.
- PR #384: "status" perm required to access Go runtime information.
- PR #367: Remove superflous leading space at CLI prompt.
- PR #368: CLI displays clear error message when not authorized.
- PR #370: CLI does not need to indent JSON when making requests.
- PR #373, PR #374: Add simple INSERT-only benchmarking tool.
- PR #342: Add missing Store parameters to diagnostic output.
- PR #343: Support fetching expvar information via CLI.
- PR #344: Make read-consistency query param value case-insensitive.
- PR #345: Add unit test coverage for status and expvar endpoints.
- PR #337: Include any query params with 301 redirect URL.
- PR #316: CLI doesn't need pretty nor timed responses from node.
- PR #334: Set Content-Type to "application/octet-stream" for backup endpoint. Fixes issue #333.
The 4.0 release has renamed command-line options relative to earlier releases. This means that previous commands used to launch rqlited will not work. However the command-line changes are cosmetic, and each previous option maps 1-to-1 to a renamed option. Otherwise deployments of earlier releases can be upgraded to the 4.0 series without any other work.
- PR #309: Tweak start-up logo.
- PR #308: Move to clearer command-line options.
- PR #307: Support node-to-node encryption. Fixes issue #93.
- PR #310: HTTP service supports registration of Status providers; Mux is first client.
- PR #315: Add status and help commands to CLI.
- PR #304: Switch to Go 1.8.1.
- PR #296: Log Go version at startup.
- PR #294: Support multiple explicit join addresses.
- PR #297: CLI should explicitly handle redirects due to Go1.8. Fixes issue #295.
- PR #291: Don't access Discovery Service if node already part of cluster.
- PR #286: Tweak help output.
- PR #283: Main code should log to stderr.
- PR #280, PR #281: Integrate with new Discovery Service.
- PR #282: Retry cluster-join attempts on failure.
- PR #289: rqlite HTTP clients should not automatically follow redirects.
- PR #268: Allow Store to wait for application of initial logs. Fixes issue #260.
- PR #272: Add commit, branch, GOOS, and GOARCH, to output of
--version
. - PR #274: Use Hashicorp function to read peers. Thanks @WanliTian
- PR #278: Add support for dot-commands
.tables
and.schema
to rqlite CLI. Fixes issue #277.
- PR #253: Handle nil row returned by SQL execer. Fixes issue #253.
- PR #258: Remove check that all queries begin with SELECT. Fixes issue #255.
- PR #247: Simplify loading of SQLite dump files via single command execution. Fixes issue #246.
- PR #247: Correct SQLite dump load authentication check.
- PR #239: Add an API to the
Store
layer for custom peers storage and logging. Thanks @tych0 - PR #221: Start full support for various SQLite text types. Fix issue #240.
- PR #242: Support direct copying of the database via the Store. Thanks @tych0.
- PR #243: Use Store logging everywhere in the Store package.
- PR #230: Move Chinook test data to idiomatic testdata directory.
- PR #232, PR #233: rqlite CLI now supports accessing secured rqlited nodes. Thanks @tych0.
- PR #235: Return correct error, if one occurs, during backup. Thanks @tych0.
- PR #237, PR #238: Support observing Raft changes. Thanks @tych0
- With this release rqlite is moving to Go 1.7.
- PR #206, #217: Support loading data directly from SQLite dump files.
- PR #209: Tweak help output.
- PR #229: Remove explicit control of foreign key constraints.
- PR #207: Database supports returning foreign key constraint status.
- PR #211: Diagnostics show actual foreign key constraint state.
- PR #212: Add database configuration to diagnostics output.
- PR #224, PR #225: Add low-level database layer expvar stats.
- PR #195: Set Content-type "application/json" on all HTTP responses.
- PR #193: Allow joining a cluster through any node, not just the leader.
- PR #187: Support memory profiling.
- Go cyclo complexity changes.
- With this release Windows compatibility is checked with every build.
- PR #185: Enable foreign key constraints by default.
- PR #175: Simplify error handling of Update Peers API.
- PR #170: Log any failure to call
Serve()
on HTTP service. - Go lint fixes.
- Go cyclo complexity changes.
- PR #159: All HTTP responses set X-RQLITE-VERSION.
- PR #151: Support configurable Raft heartbeat timeout.
- PR #149: Support configurable Raft snapshot thresholds.
- PR #148: Support pprof information over HTTP.
- PR #154: CLI now redirects to leader if necessary.
- PR #155: CLI now handles "no rows" correctly.
- PR #143: Use DELETE as HTTP method to remove nodes.
- PR #142: Use correct HTTP methods on all endpoints.
- PR #137: Use resolved version of joining node's address.
- PR #136: Better errors on join failures.
- PR #133: Add Peers to status output.
- PR #132: Support removing a node from a cluster.
- PR #131: Only convert []byte from database to string if "text". Thanks @bkeroackdsc
- PR #129: Verify all statements sent to query endpoint begin with "SELECT".
- PR #141: Store methods to expose node Raft state. Thanks @bkeroack
- PR #117: Use Raft advertise address, if exists, during join.
The Raft log format in 3.0 is not compatible with the 2.0 series. To upgrade from an earlier version to this release you should backup your 2.0 leader node, and replay the database dump into a new 3.0 cluster. The HTTP API remains unchanged however.
- PR #116: Allow HTTP advertise address to be set.
- PR #115: Support advertising address different than Raft bind address.
- PR #113: Switch to in-memory SQLite databases by default.
- PR #109: Nodes broadcast meta to cluster via Raft.
- PR #109, PR #111: Leader redirection
- PR #104: Handle the
-join
option sensibly when already member of cluster.
- PR #95: Correctly set HTTP authentication.
- PR #84: Encrypted API (HTTPS) now supported.
- PR #85: BasicAuth support.
- PR #85: User-level permissions support.
- Print rqlited logo on start-up.
- End-to-end single-node and multi-node unit tests.
- PR #76: Obey timing information display at database level.
- PR #77: Add version information to binary.
timings
URL param to control presence of timing information in response.- PR #74: Use SQLite connection directly. Thanks @zmedico.
- Update operations return last-inserted ID.
- Column-oriented API responses.
- Types in API response body.
- Query times in addition to sum of query times.
- New Raft consensus module, built on Hashsicorp's implementation.
- Hot backup support.
- Selectable read-consistency levels of none, weak, and strong.
- SQLite file size added to HTTP API status endpoint.
- expvar support added to HTTP server.
Check out this tag for full details.