[23.12.0] - 2023-12-08 Features - Clusterwide SQL is available via `\set language sql` in the interactive console with the support of global and sharded tables. - Implement request authorization based on access control lists (ACL). - Implement security audit log. - Implement automatic failover of replicaset leaders. - Introduce Web UI. It includes cluster status panel and replicaset list. Current status of Web UI is still beta. CLI - Interactive console is disabled by default. Enable it implicitly with `picodata run -i`. - Allow specifying `picodata connect [user@][host][:port]` format. It overrides the `--user` option. - Allow connecting interactive console over a unix socket `picodata run --console-sock`. Use `picodata connect --unix` to connect. Unlike connecting to a `--listen` address, console communication occurs in plain text and always operates under the admin account. - New option `picodata connect --password-file` allows supplying password in a plain-text file. - Block a user after 4 failed login attempts. - Enable the audit log with `picodata run --audit`. Lua API - Changes in terminology - all appearances of `space` changed to `table` - Update `pico.LUA_API_VERSION`: `1.0.0` -> `3.1.0` - New semantics of `pico.create_table()`. It's idempotent now. - `pico.create_table()` has new optional parameter: `engine`. Note: global spaces can only have memtx engine. - `pico.whoami()` and `pico.instance_info()` returns new field `tier` - Add `pico.sql()` - Add `pico.drop_table()` - Add `pico.create_user()`, `pico.drop_user()` - Add `pico.create_role()`, `pico.drop_role()` - Add `pico.grant_privilege()`, `pico.revoke_privilege()` - Add `pico.raft_term()` - Add `pico.change_password()` - Add `pico.wait_ddl_finalize()` - Make `pico.cas` follow access control rules - `pico.cas` now verifies dml operations before applying them - Change `pico.raft_log()` arguments - Make `opts.timeout` optional in most functions Compatibility - The current version is NOT compatible with prior releases. It cannot be started with the old snapshots.