Release 2.1.0 Added - Implement stateful failover mode. You can read more in "Failover architecture" documentation topic (see `failover.md`). - Respect `box.cfg` options `wal_dir`, `memtx_dir`, `vinyl_dir`. They can be either absolute or relative - in the later case it's calculated relative to `cartridge.workdir`. - New option in `cartridge.cfg({upgrade_schema=...})` to automatically upgrade schema to modern tarantool version (only for leader). It also has been added for `argparse`. - Extend GraphQL `issues` API with various topics: `replication`, `failover`, `memory`, `clock`. Make thresholds configurable via argparse. Changed - Make GraphQL validation stricter: scalar values can't have sub-selections; composite types must have sub-selections; omitting non-nullable arguments in variable list is forbidden. Your code **may be affected** if it doesn't conform GraphQL specification. - GraphQL query `auth_params` returns "fullname" (if it was specified) instead of "username". - Update `errors` dependency to 2.1.3. - Update `ddl` dependency to 1.1.0. Deprecated Lua API: - `cartridge.admin_get_failover` -> `cartridge.failover_get_params` - `cartridge.admin_enable/disable_failover` -> `cartridge.failover_set_params` GraphQL API: - `query {cluster {failover} }` -> `query {cluster {failover_params {...} } }` - `mutation {cluster {failover()} }` -> `mutation {cluster {failover_params() {...} } }` Fixed - Properly handle nested input object in GraphQL: ```graphql mutation($uuid: String!) { cluster { edit_topology(servers: [{uuid: $uuid ...}]) {} } } ``` - Show WebUI notification on successful config upload. - Repair GraphQL queries `add_user`, `issues` on uninitialized instance. Enhanced in WebUI - Show "You are here" marker. - Show application and instance names in app title. - Indicate replication and failover issues. - Fix bug with multiple menu items selected. - Refactor pages filtering, forbid opening blacklisted pages. - Enable JS chunks caching.