Журнал изменений¶
Формат журнала основан на Keep a Changelog, версионирование подчиняется правилам Semantic Versioning.
[1.6.23, 1.7.14] — 2021-11-09¶
Fixed¶
- Ban authorization with cluster cookie
- Prevent watchdog triggering during log/audit_log queries
- Output replication if update relates more than one record
- Several UI issues
- Several LDAP issues
- An unhandled error inside
soap.decode
function - Assign null value to nested field
[1.6.22, 1.7.13] — 2021-09-24¶
Added¶
- Allow pinning some sections in config to restore if they were removed from config
- Metrics 0.11.0
- Avro-schema 3.0.6
Fixed¶
- Explicitly forbid an update of Entity/Entity array and ValueObject fields
- Allow using dashes in index/relation names back
- Fix services disappearing after some configuration updates
- Ban «namespace» usage for types
- Validation of fields with «long» type
[1.6.21, 1.7.12] — 2021-09-11¶
Added¶
- Allow to create several Kafka inputs
Fixed¶
- «Encountered multiple types» error
- GraphQL queries with index with 2 or more Decimal field types
- Prohibit connectors with the same names
- Throw an error if
input_processor.storage.type
specified with non-Aggregate type
[1.6.20, 1.7.11] — 2021-08-24¶
Added¶
- Cartridge 2.7.1
- Metrics 0.10.0
- Update Tarantool to 2.8.2
- Close kafka producers/consumers asynchronously
Fixed¶
- Attempt to reimport user’s/token’s own account
- Error on output replication is there is no output processor
- Incorrect handing of multipart keys with decimal fields in graphql
- Error when type was removed from model but expiration section was not
[1.6.19, 1.7.10] — 2021-07-22¶
Added¶
- Logs if request fails on storage
- Allow passing vshard read options to repository functions
- LDAP 1.0.2
- Metrics for tasks and jobs
Fixed¶
- LDAP validation became stricter
- Ban empty names for some TDG entities
- Restrict max password length with 1000 symbols
[1.6.18, 1.7.9] — 2021-06-30¶
Fixed¶
- Properly handle internal errors when HTTP handler fails
- Prohibit data actions with empty names
- Slow validate config flow
- Fail on attempt to delete permanently aggregate with nested entity
- Fail if null is passed as tenant value
- Unhandled error if config.yml is not valid yaml file
- OperationError when index/relation could have empty name
[1.6.17, 1.7.8] — 2021-06-09¶
Added¶
- «Plain» format for Kafka output
- Ansible playbook for deploy
- Metrics 0.9.0
- Watchdog 1.1.1
- Validation that instance DDL is compatible with configuration
- Alpha version of authorization with LDAP
Fixed¶
- Incorrect error message in account provider logs
- OperationError on storage on sequence create
- Performance issues when some buffers on routers could be sent to storage
[1.6.16, 1.7.7] — 2021-05-12¶
Added¶
- Introduce synchronous mode for output processor (tarantool/tdg#688)
- Allow configure metrics via config (tarantool/tdg2#1001)
- Handle dependencies on library initialization (however, we still recommend organizing library code to eliminate any dependencies)
- Update cartridge to d36ebf2
- SMTP module 0.0.6 (tarantool/tdg2#708)
- Metrics 0.8.0
- ODBC module 1.0.1
Fixed¶
- “Show more” button on logger page doesn’t return an error (tarantool/tdg#712)
- Topology change should not affect data access (tarantool/tdg2#934)
- Don’t show host twice in log message in case of error
[1.6.15, 1.7.6] — 2021-04-26¶
Added¶
- Drop unzip/zip requirement (tarantool/tdg#677)
- Allow to upload config without HTTP —
admin.upload_config_api
(tarantool/tdg2#272) - Cartridge with fixed stateful failover bug
- Enterprise bundle
2.7.2-0-g4d8c06890-r399
Fixed¶
- Error if uploaded config was invalid zip file (tarantool/tdg2#898)
- Invalid cursor calculation if trailing nullable fields were part of index (tarantool/tdg#689)
- Error if null value was passed to some
repository.find
filters (tarantool/tdg#691) - Change
:auto_increment
tosequence
forto_output_processor
space to avoid replication conflicts (tarantool/tdg#686) - Extend RBAC to support all modern cartridge queries and mutations (e.g. force config reapply) (tarantool/tdg2#919)
- Revoke access rights to logs from user (affected only new installations)
- Stop periodical tasks if they are removed from config (tarantool/tdg#699)
- Rename
storage_error
torepository_error
(tarantool/tdg2#933) - Scheduler can’t be run inside multiple replicasets. Add check for singleton role (tarantool/tdg#707)
- Don’t start to read messages from kafka if
token name
is invalid (tarantool/tdg#644). - Fix disabling guest role on read-only instances
[1.6.14, 1.7.5] — 2021-03-30¶
Added¶
- Cartridge with updated frontend-core (to be able to reload fronted modules)
Fixed¶
- OperationError in case options defined for kafka producer
- Error on user reimport (tarantool/tdg2#419)
[1.6.13, 1.7.4] — 2021-03-23¶
Added¶
- Metrics 0.7.1 (tarantool/tdg#670)
- Cartridge 2.5.0
- Luarapidxml 2.0.2
- ODBC 1.0.0
- Watchdog 1.1.0
- Enterprise bundle
2.6.2-124-g2c3b91439-r390
- Introduce
is_async
option for kafka output (tarantool/tdg2#812) - Disable kafka consumer autocommit (tarantool/tdg2#817)
- Make workers count configurable for kafka consumer (tarantool/tdg2#817)
Fixed¶
- Enable coredumps when watchdog aborts Tarantool process
- Spam into logs on storage startup
- Incorrect log messages when output processing failed
- Free resources after kafka/smtp output is removed from config (tarantool/tdg2#816)
- Unclear vshard errors (tarantool/tdg2#384)
- «OperationError» if empty config section is uploaded (tarantool/tdg#647)
- Replace
insert
withreplace
in repair storage spaces to avoid replication conflicts (tarantool/tdg2#758) - Unique secondary index by time in repair buffer (tarantool/tdg#638)
- Error if defaults are specified for unions (tarantool/tdg2#118)
[1.6.12, 1.7.3] — 2021-01-26¶
Added¶
- Extensions delivery via config (tarantool/tdg#590)
- Metrics 0.6.1 (tarantool/tdg#633)
- Kafka 0.6.1 (tarantool/tdg#632)
- Enterprise bundle 2.4.3-0-g5180d98f1-r372
- Allow to pass options to HTTP client (tarantool/tdg#610)
[1.6.11, 1.7.2] — 2021-01-11¶
Fixed¶
- Restrict set of symbols in service names (tarantool/tdg2#386)
- Fix scheduler error if task was removed (tarantool/tdg2#649)
- Remove check that didn’t allow creating service without “types” section (tarantool/tdg2#436)
- Add timeout to account provider ping
- Error if default value is specified for a nullable field (tarantool/tdg2#647)
- Incorrect version displaying in WebUI (tarantool/tdg2#492)
Added¶
- Cartridge 2.4.0
- Updates via GraphQL API (tarantool/tdg2#575)
- Add version compatibility option to config (tarantool/tdg2#431)
- Deletion of removed indexes from model (tarantool/tdg2#367)
- Luarapidxml 2.0.1
- Kafka 1.3.0 (tarantool/tdg2#596)
- SMTP 0.4.0
- Metrics 0.6.0
- Enable CPU usage metrics (tarantool/tdg2#442)
- Extend datetime sandbox API with
custom_datetime_str_to_nsec
,millisec_to_formatted_datetime
functions - Add “soap” module to sandbox
- Enterprise bundle 2.4.3-0-g5180d98f1-r370.
[1.6.10, 1.7.1] — 2020-12-03¶
Fixed¶
model_accessor
returns the same row several times (tarantool/tdg#586)- Repair queue pagination (tarantool/tdg#572)
Added¶
if_not_exists
option for insertion (tarantool/tdg#588)- Enterprise bundle 2.4.3-0-g5180d98f1-r362 (tarantool/tdg2#491)
- ODBC 0.7.3 (tarantool/tdg2#491)
[1.7.0] — 2020-11-10¶
Fixed¶
- Fix repair queue pagination (tarantool/tdg2#396)
- Upgrade Tarantool version to 2.4.3-0-g5180d98f1 (tarantool/tdg2#491)
Removed:¶
- Frontend role
- Permissions. Use data actions instead
Breaking changes¶
- For TDG 1.7.x, use ‘Authorization’ header (Bearer Authentication) instead of ‘auth-token’. For TDG 1.6.x, the ‘auth-token’ key is still valid.
[1.6.9] — 2020-10-20¶
Fixed¶
- Kafka: handle error during consumer closing
- Fix “field is required by space format is missing” on new roles create
Added¶
- Metrics 0.3.0
- Checks 3.1.0
- ODBC 0.7.2
[1.6.8] — 2020-10-01¶
Fixed¶
- Display objects in the same order for different queries (tarantool/tdg2#312)
- Can’t modify data because this instance is in read-only mode (tarantool/tdg2#317)
- account_manager: don’t try to cancel fiber twice
- shared_storage: sharding will work until first rebalancing (tarantool/tdg2#321)
- Log messages are not showed on log page (tarantool/tdg2#330)
- Audit log messages are not showed on apply click (tarantool/tdg2#333)
- Get last audit logs by default on audit log page (tarantool/tdg2#334)
- Add password validation on update (tarantool/tdg2#349)
- Fix raise condition in
get_range
forauto_increment
(tarantool/tdg2#347) - Fix sort on update
- Fix NULL serialization in code generation (tarantool/tdg2#358)
- Add libraries as files to downloaded config (tarantool/tdg2#360)
- Add missing schedule validation (tarantool/tdg2#362)
- Validate email uniqueness on update
- Fix attempt to index global ‘vshard’ (a nil value) (tarantool/tdg2#353)
- Fix access to Cartrdige GraphQL API via token (tarantool/tdg2#354)
- Some audit_log parameters is rewritten by GraphQL API (tarantool/tdg2#337)
- Revert “remove pagination for DML operations”
- Validate user/token expiration on import (tarantool/tdg2#356)
- Allows to recreate roles (tarantool/tdg2#254)
- Unknown error when bootstrap not done (tarantool/tdg2#326)
- Change password doesn’t reset cookies (tarantool/tdg2#215)
- Prohibit “new” state usage (tarantool/tdg2#249)
- Metric
tdg_graphql_mutation
shows incorrect values (tarantool/tdg2#256) - Ban “Make all instances writeable” option (tarantool/tdg2#227)
Added¶
- ODBC 0.7.1
[1.6.7] — 2020-08-20¶
Fixed¶
- Prohibit pagination for update/delete (tarantool/tdg2#250)
- Error message does not update after retrying in failed jobs (tarantool/tdg2#305)
- Log in mechanics broke (tarantool/tdg2#176)
- Fix cluster DML
[1.6.6] — 2020-08-05¶
Fixed¶
- Allow enabling authorization only to admin (tarantool/tdg2#82)
- Audit log: throws bad argument error (tarantool/tdg2#178)
- Invalid repair queue config: bad argument (tarantool/tdg2#208)
- Restart expiration tasks on apply config (tarantool/tdg2#182)
- Audit_log: attempt to call field ‘routeall’ (tarantool/tdg2#221)
- Account_provider: attempt to call a nil value (tarantool/tdg2#207)
- Bad error message on User create (tarantool/tdg2#204)
- Make Cartridge config actions available only in dev mode (tarantool/tdg2#205)
- Validate extensions when applying configuration (tarantool/tdg2#171)
- It’s possible to specify
ban_inactive_more_seconds
more than 45 days (tarantool/tdg2#209) - Introduce “last_updated” field for users/tokens to prevent block recently activated users/tokens (tarantool/tdg2#210)
- Single shot task hangs in “pending” state after task_runner role is enabled (tarantool/tdg2#226)
- Try again in failed jobs starts from input_processor instead of storage (tarantool/tdg2#196)
- Failed to update an element of nested array (tarantool/tdg2#214)
Added¶
- Validate commands before sending them for execution (tarantool/tdg2#114)
- Add Kafka topic pass to sandbox using metatable (tarantool/tdg#564)
[1.6.5] — 2020-07-15¶
Fixed¶
- Hide configuration page for one time access role (tarantool/tdg2#102)
- Archivation fixes(tarantool/tdg2#83, tarantool/tdg#84)
- Fix pipeline
validate_config
failure on partial config update - GraphQL returns datetime with last recently used timezone (tarantool/tdg2#127)
- Fix Docker image
- Logger page: “bad argument to iso8601_str_to_nsec” (tarantool/tdg2#156)
- Tuple update could be broken after schema upgrade (tarantool/tdg2#136)
- Model function prevents object insert via GraphQL (tarantool/tdg2#125)
- Show user name instead of user login in task list (tarantool/tdg2#154)
- Indicate JSON parsing error when handling invalid objects from Kafka (tarantool/tdg2#156)
- Properly handle expiration tasks restart (tarantool/tdg2#183)
Added:¶
- Add request-id header to response (tarantool/tdg2#188)
[1.6.4] — 2020-07-02¶
Fixed¶
- Improve validation in case then there are no mutations defined (tarantool/tdg2#96)
- Validation allows nullable aggregates to be nested (tarantool/tdg2#97)
- Some pages for non-bootstrapped cluster throw “attempt to call nil value” errors (tarantool/tdg2#91)
- Add check for obligation token name upon import (tarantool/tdg2#99)
- Check user logins in collision with token names (tarantool/tdg2#112)
- Like should use plain find (tarantool/tdg2#132)
- Update token activity for token authorized by name (tarantool/tdg2#130)
- Drop default limit for find for DML operations (tarantool/tdg2#128)
- Check that update list has expected format (tarantool/tdg2#137)
[1.6.3] — 2020-06-05¶
Fixed¶
- Do not check token if authorization is disabled (tarantool/tdg2#57)
- Error while loading downloaded config (tarantool/tdg2#62)
- Fix Kafka input cleanup on config change (tarantool/tdg2#70)
- Disable “nonNull” property for fields with “default_function” and “default” properties
- Unlinked space stays in DDL after drop (tarantool/tdg2#81)
- Delete the config section if it does not exist (tarantool/tdg2#85)
- Added nofile limit to systemd unit
- Disable web pages if signed in but auth is disabled (tarantool/tdg2#90)
model_defaults
setup default fields even for nullable entities (tarantool/tdg2#76)isValueOfTheType
callback missed for “Any” type (tarantool/tdg2#77)
Added¶
- Enable Cartridge code page in dev build (tarantool/tdg2#87)
[1.6.2] — 2020-05-21¶
Fixed¶
- Update token state leads to error if there is a read-only replica (tarantool/tdg2#48)
- Misprint in Cartridge UI (tarantool/tdg2#58)
get_last_tuple_for_version
could return incorrect result (tarantool/tdg2#37)make_package tgz
fails with gevent error (tarantool/tdg2#34)- Model default functions got broken (tarantool/tdg#557)
[1.6.1] — 2020-05-13¶
Fixed¶
LIKE
operator is broken (tarantool/tdg2#55)- Replace
space.insert
withspace.replace
to avoid replication conficts (tarantool/tdg2#43) - Tokens blocks after migration (tarantool/tdg2#47)
- Unable to make object with certain version in case of using only-if-version param (tarantool/tdg2#40)
- rocks: update metrics module
- Replication burns CPU (tarantool/tdg2#35)
- rocks: update icu-date library
- [UI] When performing prohibited actions, the content of the page is blocked (tarantool/tdg#535)
- Password is not generated after changes in Password policy (tarantool/tdg#554)
- Page is not displayed for old user after Reset password (tarantool/tdg#552)
- Rlimit
module
doesn’t work on Linux (tarantool/tdg2#20) - Multiindex raise box error, if target field is nullable (tarantool/tdg#553)
Added¶
- Resolve “Custom SOAP response body” (tarantool/tdg2#30)
[1.6.0] — 2020-04-20¶
Fixed¶
- DDL generation for nullable arrays for multikey indexes (tarantool/tdg#553)
Added¶
- Prohibit using complex types for multikey indexes (tarantool/tdg#553)
[1.6.0-alpha] — 2020-04-20¶
Added¶
tdgctl
: add upgrade command (tarantool/tdg#134)- remove
ldecnumber
dependency as useless now - account object (tarantool/tdg#122)
- shared storage for sandbox is implemented (tarantool/tdg#62)
- [dev] handle for tracing enable/disable in block of code
- GraphQL mutation
audit_log.set_enabled
to enable or disable audit logging - add
audit_log.remove_older_than_n_hours
config setting to delete old audit log messages (tarantool/tdg#171) - add GraphQL query cache (tarantool/tdg#124)
- add new archive option
file_size_threshold
that splits whole archive into separate parts which size is not morefile_size_threshold bytes
. By default 100MB - add GraphQL
permanent_delete
flag for mutations - batch delete objects and secure delete objects (tarantool/tdg#105)
- add jobs section in config.yml for user-specific max_jobs_in_parallel setting
- add ability to send data from sandbox to connector (tarantool/tdg#185)
- implement
sandbox.batch_call
(tarantool/tdg#200) - add
box.NULL
to the sandbox - add uft8 to the sandbox (tarantool/tdg#202)
- implement
sandbox.accumulate
(tarantool/tdg#204) - repository supports “add” and “sub” operations (tarantool/tdg#210)
- expose
cmpdeeply
in sandbox (tarantool/tdg#227) - change example config (tarantool/tdg#233)
- add verbose audit log level (tarantool/tdg#256)
- tdgctl: allow to specify custom environment variables for instances
- set Info as default audit log level (tarantool/tdg#257)
- better affinity detection in
repository.find
(tarantool/tdg#267) - add GraphQL
maintenance.clear_data
function to truncate storage spaces (tarantool/tdg#254) - add waiting state to scheduler (tarantool/tdg#263)
- add
task_runner
section inconfig.yml
for user-specificrunning_count_threshold
setting - add availability to ignore object in
input_processor
with commandmake_ignore
(tarantool/tdg#322) - account manager and account provider roles for security purposes (tarantool/tdg#169, tarantool/tdg#172, tarantool/tdg#222, tarantool/tdg#244)
- set module name ‘pipelines’ for sandbox logs (tarantool/tdg#332)
- provide
odbc.prepare
in the sandbox (tarantool/tdg#337) - add
all_versions
flag for repository find and permanent delete (tarantool/tdg#196) - implement the ability to start garbage collection with a specified period (tarantool/tdg#336)
- add role
sequence_generator
(tarantool/tdg#335) - add force cleanup old versions on limit change (tarantool/tdg#339)
- add auto incremented fields (tarantool/tdg#350)
- support auth extension (tarantool/tdg#358)
- add password generator (tarantool/tdg#13)
- add GraphQL endpoints to generate and validate passwords (tarantool/tdg#368)
- disable GraphQL
maintenance.clear_data
function in production mode (tarantool/tdg#367) - add time synchronization checker (tarantool/tdg#19)
- add blacklist for UI pages (tarantool/tdg#392)
- add fallback decision in auth plugin (tarantool/tdg#421)
- repository supports “like” operator (tarantool/tdg#108)
- add ODBC timeout option (tarantool/tdg#440)
- role based access control (tarantool/tdg#18) for TDG API/functions (tarantool/tdg#351) and data (tarantool/tdg#394) supported
- add GraphQL
maintenance.clock_delta
function to get max clock delta in cluster (tarantool/tdg#480) - Tarantool version upgraded to 2.3.1
- decimal type is supported
- add flow type checking for type correctness in CI
- Sequence generator role is available in sandbox (tarantool/tdg#548)
Fixed¶
- remove check existence of
task_runner
when storage init (tarantool/tdg#135) - [dev] implement
ignore_hard_limits
flag fordocument.tuple_select
for some service/development purposes. It callsfiber.yield
everyforce-yield-limit
iterations. Can be configured via GraphQL, by default 1000 - tdgctl: support new option
is_master
(boolean) for deploy config. The upgrade procedure will only run on such instances - decorate an archive name with instance name (tarantool/tdg#183)
- do not treat responses with code 201, 204 as an error (tarantool/tdg#187)
- tdgctl:
upgrade
automatically stops all instances - the only request context pass through netbox now (tarantool/tdg#189)
- repository update for value object case (tarantool/tdg#259)
- wrong (but without affect)
bucket_id
calculation inrepository.find
(tarantool/tdg#266) - prohibit the ability to log in if authorization is turned off (tarantool/tdg#277)
- document: allow to specify multikey index as index check (tarantool/tdg#310, tarantool/tdg#311)
- uploading configuration with a section removed does remove it clusterwide (tarantool/tdg#314)
- add cursor field to repair storage get method (tarantool/tdg#344)
Removed:¶
batch_count
option frommap_reduce
Breaking changes¶
- format of the return value in
output_processor
changed (tarantool/tdg#178) - map-reduce interface was updated (tarantool/tdg#192)
- GraphQL
maintenance_get_aggregates
function renamed tomaintenance.get_aggregates
- optimistic lock semantic is changed (tarantool/tdg#283)
[1.5.0] — 2019-09-18¶
Added¶
- default value for
token_acl
list - checking permissions by token
- authorization with token name
- default user for tasks
- option to find deleted records in
model_accessor
- system tasks
- ODBC support in sandbox
- Kafka consumer in
connector
request_id
prefix for log messages (tarantool/tdg#541)- expose tracing into sandbox
- funcall refactoring (tarantool/tdg#575)
- Fix: UI: Permission filter fix
- Fix: rename scheduler api because of clashing with cluster logic
- Fix: call to utils datetime conversion in model_updater
- Fix: call
task_list
API only from master - Fix: rename
common.tracing
role totracing
- QA: enable Lua and Python linters
- UI: show asterisks on password fields (tarantool/tdg#561)
- UI: logger lamp disable (tarantool/tdg#564)
- UI: tracing flag for GraphQL and test sections (tarantool/tdg#546)
repository.call_on_storage
(tarantool/tdg#49)- sandbox function this_storage.snapshot
- connector SMTP output feature (tarantool/tdg#5)
- delegate arguments parsing to cluster.argparse (tarantool/tdg#93)
- rename
cluster
tocartridge
(tarantool/tdg#95) - Fix: output replication on entity update (tarantool/tdg#61)
- add
permanent_delete
option torepository.delete
- expose
if_only_version
option to GraphQL mutations - GraphQL query time and fail monitoring (tarantool/tdg#101)
- Add
response_body
andstatus_code
to failed requests fromoutput_connector
(tarantool/tdg#75) - Functions refactoring (tarantool/tdg#131). In functions you must get arguments
like
local x, y = ...
instead oflocal x, y = unpack(...)
or using array semantics - Tarantool version updated to 2.2
Fixed¶
- disable job sender on replica (tarantool/tdg#99)
- spawn function can’t find a function (tarantool/tdg#126)
[1.4.1] — 2019-09-06¶
[1.3.0] — 2019-05-31¶
[1.2.0] — 2018-09-29¶
Added¶
- monitoring a replication lag
- logger pagination
- profile the pipelines
- fixed systemd start service on boot
- save backup files before deployment
- ‘try again all’ button in the repair queue
- singleton mechanism of instance
- migrated to new logger
- GraphQL refactoring
- break the build if any module is missing
- check deploy permissions
- download logs with tdgctl
- add rm data command to tdgctl
- display cluster memory usage in UI
- vshard call timeout
- deploy the project on the bare metal
- migrate Docker image to static Tarantool and CentOS 7
- add datacenter name information to every node
- web console
- add cluster cookie to deploy script
- cluster: added GraphQL self query
[1.1.1] — 2018-07-10¶
Added¶
- privileged mode
- keep DDL in sync across storage nodes
- simple deployment script based on Docker and Fabric
- wrap
net.box.call
with errors
[1.1.0] — 2018-07-01¶
Added¶
- authentication and external app token authentication
- port repair queue to vshard
- notifier as separate role
- collect messages before sending
- collect metrics from dcos deployment to Prometheus
- multipart index
- email notifications about repair queue events
[0.3.0] — 2018-02-28¶
Added¶
- support for sharded storage
- proof-of-concept of dynamically adding/replacing replicas of shards, using the ‘shard’ module and docker as ‘backend’
- Avro-based modeling language
- fixed large GraphQL requests parsing
[0.2.0] — 2018-01-23¶
Added¶
- Prometheus-based monitoring
- “on insert” subscriptions
- JSON output adapter
[0.1.0] — 2017-12-20¶
Added¶
- Initial version of
connector
with SOAP input and Tarantool protocol output - Data processing pipelines based on Lua code
- Schema description language loosely based on graphql-lua
- Ability to dynamically reload schema
- Schema verification for incoming objects
- Basic same-node storage backend
- GraphQL query API based on the schema
- Frontend for testing GraphQL queries
- Frontend for editing schema
- Frontend for testing SOAP requests