Журнал изменений
На этой странице находится актуальная информация о версиях Tarantool Data Grid. Формат журнала изменений основан на документе Keep a Changelog, а версионирование следует правилам Semantic Versioning.
-
Спейсы хранилища audit_log и common_log перенесены из движка memtx на движок vinyl. В отличие от memtx, vinyl хранит данные на диске и не использует оперативную память для записей сообщений в журнал. При первом запуске после обновления существующий спейс memtx автоматически переносится в vinyl в фоновом режиме; запросы на чтение при этом остаются согласованными в течение всего процесса миграции. Опции конфигурации
max_msg_in_logиmax_log_sizeтеперь считаются устаревшими и выводят соответствующее предупреждение, не влияя на работу движка vinyl. -
Добавлены операторы фильтрации
!=и!=CIдля методаrepository.find().!=исключает записи, в которых поле равно заданному в операторе значению. Оператор!=CIвыполняет ту же проверку без учета регистра и принимает на вход только строку. Оба оператора являются фильтрами post-scan и могут применяться к обычным полям и составным индексам:– Исключить одно значениеrepository.find('Database', {{'name', '!=', 'MongoDB'}})– Исключить нулевые меткиrepository.find('Database', {{'label', '!=', nil}})– Исключение значения без учета регистраrepository.find('Database', {{'name', '!=CI', 'mongodb'}})– Составное имя индекса в сокращенном видеrepository.find('Database', {{'name_label', '!=', {'MongoDB', 'MongoDB'}}}) -
Улучшен алгоритм выбора индекса в планировщике запросов. До этого, если поля составного индекса были указаны по одному (например,
{{'field1','==','a'}, {'field2','==','b'}}), в сканирование включалось только первое поле. Остальные условия при этом превращались в фильтры после сканирования и возникал риск выполнения полного сканирования. Теперь планировщик формирует самый длинный совпадающий префикс равенства для каждого потенциального индекса и выбирает тот, который имеет наибольшее покрытие полей, поэтому оба условия используются ключом сканирования. -
Добавлена опция
api-encodingдля полей типовstringиbytesв модели данных. Опция позволяет прозрачно кодировать и декодировать бинарные данные в API HTTP и GraphQL. Поддерживаются кодировкиbase64иhex. Опция принимает на вход либо одну строку кодировки (применяемую к интерфейсам HTTP и GraphQL), либо таблицу со значениями для каждого интерфейса (http,graphql):{"name": "Payload","type": "record","fields": [{"name": "id", "type": "string"},{"name": "data", "type": "bytes", "api-encoding": "base64"},{"name": "hash", "type": "string", "api-encoding": {"http": "hex", "graphql": "base64"}}]} -
Добавлена проверка срока действия сертификатов для коннекторов Kafka и HTTP. TDG периодически сканирует TLS-сертификаты, заданные в конфигурации коннектора, и записывает в журнал сообщение уровня
INFOилиWARN, когда срок действия сертификата подходит к концу или уже истек. Проверяются параметрыssl.certificate.location,ssl.certificate.pem,ssl.ca.location,ssl.ca.pemдля Kafka и параметрыca_file,ca_pathдля HTTP. Проверку сертификатов и сообщения об истечении срока их действия можно настроить в разделе конфигурации cert_checker:cert_checker:enabled: trueinterval_sec: 3600threshold_info_days: 7threshold_warn_days: 1Для сертификатов с истекшим сроком действия TDG всегда записывает предупреждение на уровне
warning. -
В веб-интерфейс добавлена вкладка Sandbox для отладки кода в окружении
sandbox. -
Исправлено восстановление планировщика задач после сбоя. Задачи, завершенные на раннере во время простоя планировщика, теперь корректно подхватываются при перезапуске - без зависания на неопределенное время или некорректного перезапуска.
-
Исправлено создание индекса по полю
bytes, вызывавшееOperationError. Типbytesтеперь ведет себя как псевдоним дляstring. -
SDK обновлен до версии 2.11.9-0-r709.
-
Cartridge обновлен до версии 2.17.1.
-
Добавлено больше записей в журнал аудита.
-
Добавлено имя экземпляра
nodeв записи журнала аудита. -
Добавлена опция
paramsв запросы HTTP и SOAP. В примере ниже отправляется запрос на<http_output.url>?hello=world:connector.http_request('http_output', 'get', nil, { params = { hello = 'world' } }) -
Добавлен путь к параметрам SOAP-запроса. Путь добавляется к URL, указанному в конфигурации. Например, если адрес -
example.com, а путь -/path/to/somewhere, результат будет выглядеть так:example.com/path/to/somewhere. -
Добавлено время ожидания на стороне хранилища для журнала событий и журнала аудита:
- для предотвращения чрезмерного использования ЦП во время сканирования без указания диапазона;
- параметр
Timeoutтеперь можно указать только через GraphQL API.
-
Объединены все GraphQL API для конфигурации журнала аудита. Для выполнения мутации теперь используется следующий формат:
mutation { audit_log { config { ... } } }Для выполнения запроса на получание данных теперь ипользуется следующий формат:
{ audit_log { config { ... } } } -
Все коды ответов
2xxтеперь считаются успешными для output-коннекторов HTTP и SOAP. -
Добавлен формат
plainдля output-коннектора HTTP:connector:output:- name: plain_httptype: httpformat: plain # Content-Type = 'text/plain;charset=UTF-8'url: http://localhost -
Метод
repository.getтеперь принимает опциюfields(как в методеrepository.find). -
Исправлено хранение смещения для коннектора Kafka, когда опция
enable.auto.offsetявно включена в конфигурации. -
Отключена возможность указывать мультиключевой индекс в качестве первичного, это приводило к ошибке
OperationError. -
Отключена возможность указывать отрицательное значение
search_timeoutдля LDAP. -
Cartridge обновлен до версии 2.16.6.
-
SDK обновлен до версии 2.11.8-0-r707.
-
metrics обновлен до версии 1.7.0.
- Добавлены методы
register_callback()иunregister_callback()в модульmetrics. В целях повышения производительности количество обратных вызовов, которые может зарегистрировать пользователь, ограничено 128. - Добавлен модуль
xml- обертка вокруг модуля luarapidxml.
- Улучшена сортировка/фильтрация на вкладках Repair, Failed Jobs и Output Processor.
- Добавлен вывод информации о раннерах на вкладке Task Information.
- Добавлена опция
asyncдля коннекторов на вкладке Test.- Добавлено больше настроек на вкладку Settings -> Audit Log.
- Добавлено выпадающее меню
formatдля Kafka на вкладке Connector.- Добавлена вкладка Migrations.
-
metrics обновлен до версии 1.6.2.
-
Cartridge обновлен до версии 2.16.5.
-
kafka обновлен до версии 1.6.14.
-
SDK обновлен до версии 2.11.8-0-r706.
-
Улучшено отображение записей в журнале аудита.
-
Добавлена возможность указывать опции для SOAP output-коннектора (как для HTTP-коннектора).
-
Добавлена возможность передавать раздел (partition) для Kafka producer:
connector.send('to_kafka', object, {partition = 1}). -
Добавлено время ожидания по умолчанию для SOAP and HTTP output-коннекторов (~4.5 минуты).
-
Добавлена поддержка настраиваемых параметров часового пояса.
-
Добавлена функция
metrics.get_labelsвsandbox, она позволяет получить метки текущего экземпляра. -
Добавлена функция
log.new(module_name)вsandbox. -
Добавлены следующие функции журнала аудита в
sandbox:audit.new(module_name),audit.verbose,audit.info,audit.warnиaudit.alarm. -
Добавлен путь к параметрам HTTP-запроса. Путь добавляется к URL, указанному в конфигурации. Например, если адрес -
example.com, а путь -/path/to/somewhere, результат будет выглядеть так:example.com/path/to/somewhere. Это достигается путем использования опции [path]{.title-ref} при взаимодействии с HTTP-коннектором. -
Добавлена библиотека
uriвsandboxсо следующими методами:uri.parse,uri.format,uri.escape,uri.unescape,uri.parse_manyиuri.unreserved. -
Добавлен
oracle-коннектор. Как и ODBC-коннектор, его можно задать в файле конфигурации:oracle:- name: connection_nameusername: userpassword: secretdb: 127.0.0.1:1521/SOURCE_CCMprefetch_count: 100 # optional: prefetch row count amount from Oracleprefetch_size: 4096 # optional: memory limit for prefetching (in MB)batch_size: 50 # optional: the size of each SELECT loop batch on exec() and cursor:fetch_all()После вы сможете использовать указанный коннектор в Lua-коде:
local oracle = require('oracle')local res, err = oracle.execute('connection_name', 'INSERT INTO test(i, s) VALUES(:I, :S)', {I=1, S='Hello!'})local cursor, err = oracle.cursor('connection_name', 'SELECT a, b, c FROM table')cursor:fetch_row()cursor:fetch(fetch_size)cursor:fetch_all()cursor:fetch_first(fetch_size)cursor:fetch_last()cursor:fetch_absolute(fetch_size, offset)cursor:fetch_relative(fetch_size, offset)cursor:fetch_current(fetch_size)cursor:fetch_prior(fetch_size)cursor:get_position()cursor:ipairs()cursor:is_closed()cursor:close() -
Исправлено неясное сообщение об ошибке фронтенда, когда часы между узлами не были синхронизированы.
-
Исправлено несколько мелких ошибок ODBC-коннектора.
-
Исправлена ошибка
Transaction has been aborted by a fiber yield, когда запрос запускался с флагомskip_result.
- Cartridge обновлен до версии 2.16.4.
- SDK обновлен до версии 2.11.8-0-r703.
- metrics обновлен до версии 1.6.0.
- Улучшен макет страниц в веб-интерфейсе: увеличены интервалы и уменьшен отступ для более аккуратного вида.
- Добавлена метрика
tdg_kafka_broker_state(состояние брокера). Возможные значения метрики:INIT(1),DOWN,CONNECT,AUTH,APIVERSION_QUERY,AUTH_HANDSHAKE,UP,UPDATE(8),UNKNOWN(-1). - Добавлена метрика
tdg_kafka_broker_source(источник брокера). Возможные значения метрики:learned(1),configured,internal,logical(4),unknown(-1). - Добавлена метрика
tdg_kafka_cgrp_state(состояние обработчика локальной группы consumer). Возможные значения метрики:init(1),term,query-coord,wait-coord,wait-broker,wait-broker-transport,up(7),unknown(-1). - Добавлена метрика
tdg_kafka_cgrp_join_state(состояние присоединения обработчика локальной группы consumer). Возможные значения метрики:init(1),wait-join,wait-metadata,wait-sync,wait-assign-call,wait-unassign-call,wait-unassign-to-complete,wait-incr-unassign-to-complete,steady(9),unknown(-1). - Добавлено логирование для отслеживания процесса миграции.
- Исправлена ошибка при миграции, когда тип данных содержал поля по умолчанию.
- Исправлено вводящее в заблуждение сообщение об ошибке при закрытии SMTP-коннектора.
- Логи консоли теперь используют функционал логирования модуля из Tarantool.
- Исправлена проблема с хранилищем, которая могла возникать при одновременных чтении и записи нескольких экземпляров - например, во время восстановления после сбоев.
- Запрещено добавление новых ненулевых полей в существующие модели данных.
- Опция
token_nameдля продюсеров Kafka теперь обязательна при включенной авторизации. - Исправлена ошибка, при которой некоторые интерфейсы принимали некорректные строки даты и времени (datetime).
- Исправлена ошибка, при которой последняя версия объекта пропадала во
время пагинации с включенной опцией
all_versions.
-
Cartridge обновлен до версии 2.16.3.
-
metrics обновлен до версии 1.5.0.
-
Добавлена подсказка с исходным временем на вкладке Audit Log.
-
Добавлено имя конкретного токена в сообщения об ошибках авторизации Kafka producer.
-
Снижена нагрузка на ЦП, возникавшая при создании роутером большого количества файберов для запросов на чтение логов, журналов аудита или очереди восстановления.
-
Исправлена опция
disable_metricsдля Kafka producer и consumer. -
Исправлено логирование опций конфигурации
*.passwordдля Kafka producer и consumer. -
Исправлено некорректное поведение при присвоении значения null непустому массиву.
-
Исправлена ошибка, при которой некоторые файлы создавались с некорректными правами доступа.
-
Исправлена ошибка с созданием сериализаторов и десериализаторов для больших моделей, которая могла привести к состоянию
OperationError. -
Исправлена ошибка
connection state is ..., возникающая при попытке остановить задачу. -
Исправлена некорректная десериализация массивов при добавлении новых полей.
-
Добавлена опция
modeв секцию конфигурацииgc. Возможные значения:step(по умолчанию),collect. -
Добавлена возможность включать сжатие для полей типа
Enum. -
Добавлено API для получения размера ввода и вывода очереди восстановления:
{ repair_list_info { size } }{ output_processor { info { size } } }
-
Cartridge обновлен до версии 2.16.2.
-
metrics обновлен до версии 1.4.0.
-
expirationd обновлен до версии 1.8.0.
-
SDK обновлен до версии 2.11.7-0-r691.
-
Account provider больше не отправляет пустые запросы для обновления информации об активности пользователей и токенов.
-
Account provider теперь отправляет информацию об активности пользователей и токенов в триггере
on_shutdown. -
Исправлен доступ к заблокированным пользователям и токенам при отключенной авторизации.
-
Исправлена возможная потеря информации об активности пользователей и токенов.
-
Улучшены сообщения об ошибках:
- Добавлена явная ошибка, если не указан
routing_key. - Добавлена ошибка в случае, если в схеме данных указан null-литерал вместо строки "null".
- Добавлена явная ошибка, если не указан
-
Исправлены ошибки типов данных при объявлении сервисов. Теперь можно объявить тип в момент использования, например:
a: ["null", {"name": "abc", "type": "record", "fields": [..]}]. -
Добавлена поддержка query plan при запросе через iproto repository API.
-
Добавлена опция
disable_metricsдля отключения метрик Kafka:connector:input:- name: kafkatype: kafka...disable_metrics: trueoptions:...
- Cartridge обновлен до версии 2.15.3.
- kafka обновлен до версии 1.6.10.
- Обновлены зависимости фронтенда.
- Cartridge обновлен до версии 2.15.2.
- Исправлена ошибка, при которой обновление записи могло изменять несвязанные поля.
- Смягченная проверка миграции: теперь ее можно использовать для массовых обновлений данных без необходимости изменения схемы данных.
- Добавлено логирование DML-операций при изменении ролей доступа и действий с данными.
- Добавлена страница "Show password" для пользователей.
- Исправлена десериализация типов
Date,DateTimeиTimestampво вложенных массивах. - Исправлено преобразование GET-запроса в POST-запрос при использовании
connector.http_requestс непустым телом. - Cartridge обновлен до версии 2.15.1.
- SDK обновлен до версии 2.11.6-0-r672.
- Зарезервировано название поля
cursorво избежание конфликтов с полем системного курсора. - Увеличена стабильность проверки запуска модуля
vshardдля предотвращения различных неясных ошибок. - Исправлена ошибка
Assertion failedпри использовании журнала аудита. - Добавлено периодическое обновление кэша данных учетных записей пользователей, токенов и прав доступа для предотвращения проблем с инвалидацией кэша.
- Добавлено логирование потенциальных проблем в коде sandbox.
- Исправлено несколько ошибок, связанных с менеджером учетных записей.
- Добавлен
methodв output-опции подключения HTTP. - SDK обновлен до версии 2.11.5-0-r662.
- Исправлено сообщение
Invalid merge source, возникающее при использованииrepository.pairsв случае превышения лимитов на число просканированных записей. - Исправлена ошибка, при которой настройки хранилища журналов игнорировались в случае восстановления после сбоев (failover).
- Исправлена потеря обновлений при изменении вложенного массива.
- SDK обновлен до версии 2.11.4-0-r658.
- Расширена информация о клиенте, записываемая в журнал аудита при неудачных попытках авторизации.
- Исправлена ошибка при попытке использования фрагментов в GraphQL-запросах.
- Исправлена ошибка при попытке указать две выборки в GraphQL-запросе.
- Исправлена ошибка при указании уровня логирования в аргументе командной строки или переменной окружения.
- Исправлена возможность обновления необнуляемого элемента массива на null.
- Убран sandboxing из функции, использующейся при миграции спейсов. Теперь можно использовать произвольные функции Lua/Tarantool.
- Исправлена ошибка при запуске миграций в режиме
dry_run. - Исправлена некорректная обработка спанов при включенном трейсинге при ошибке обработки объектов из Kafka.
- Исправлена ошибка
Field version nullability mismatch.
- Cartridge обновлен до версии 2.12.4.
- SDK обновлен до версии 2.11.4-0-r653.
- [Breaking change] Базовый образ для сборки проекта обновлен с CentOS 7 до AlmaLinux 8. Теперь проект может не работать на более старых дистрибутивах.
- [Breaking change] Отключено сопоставление с Lua-шаблоном при поиске содержимого сообщений журнала.
- Удалить поле из модели данных теперь можно без запуска миграции.
- Исправлены ошибки, возникающие при обновлении полей-массивов.
- Kafka consumer теперь логирует offset сообщения в случае возникновения проблем.
- Исправлена ошибка, возникающая при запуске миграций в режиме
dry_runдля спейсов с отключенным версионированием. - Cartridge обновлен до версии 2.12.3.
- metrics обновлен до версии 1.2.0.
- Добавлен метод
connector.http_requestв sandbox. - Добавлена подсистема событий
events. - Исправлено разыменование
nil(nil dereference) при перезагрузке конфигурации в Kafka-клиенте. - Исправлена обработка ошибок маршрутизации.
- Исправлен расчет размера журнала TDG (спейса
tdg_log). - Добавлен доступ к странице веб-интерфейса Console для
пользователей с привилегией
eval. - Cartridge обновлен до версии 2.12.0.
- SDK обновлен до версии 2.11.3-0-r636.
- Исправлена ошибка: account provider watcher печатал ошибку при инициализации.
- Cartridge обновлен до версии 2.10.0.
- expirationd обновлен до версии 1.6.0.
- SDK обновлен до версии 2.11.3-0-r631.
- Добавлен фильтр полей для запросов на получение данных.
- Исправлена ошибка
table is nilв обнуляемом поле записи. - Исправлена ошибка vshard gc при балансировке.
- Исправлена ошибка, связанная с передачей значений
cdataв метрики. - Исправлено использование типа [Union]{.title-ref} совместно с массивами.
- Исправлено значение версии по умолчанию для схемы GraphQL.
- Исправлена нумерация версий PRM-пакета.
- Исправлено переполнение в значениях дат.
- SDK обновлен до версии 2.11.2-0-r621.
- Cartridge обновлен до версии 2.9.0.
- Исправлена сборка Docker-образа.
- [Breaking change] Изменен формат ошибок некоторых функций Repository API.
- Добавлена возможность указания заголовков (
headers) для Kafka-коннектора. - Исправлено некорректное отображение версии продукта при использовании Docker-образа.
- Исправлена обработка параметра
if_not_existsвrepository.put_batch(). - Исправлена неконсистентность ошибок, возвращаемых
repository.put_batch(). - SDK обновлен до версии 2.11.2-0-r616.
- Cartridge обновлен до версии 2.8.6.
- [Breaking change] Полностью удалена функциональность тенантов.
- Добавлена возможность вызова
repository.call_on_storage()без указания типа. - Исправлена некорректная сериализация массивов.
- Исправлена обработка параметра
pkeyфункцииrepository.get()при указании версии. - Исправлены ошибки в триггерах механизма версионирования.
- SDK обновлен до версии 2.11.2-0-r609.
- SDK обновлен до версии 2.11.1-0-r605.
- Cartridge обновлен до версии 2.8.4.
- Обновлены зависимости web UI.
- [Breaking change] Частично удалена функциональность тенантов.
- Добавлена опция [handler]{.title-ref} для Kafka-коннектора.
- Добавлена обработка ошибок в Kafka-коннекторе.
- Добавлены метрики обработчика исходящих данных.
- Добавлена возможность использования ([require]{.title-ref}) кода из конфигурации в расширениях.
- Исправлен вызов [deinit]{.title-ref} до вызова [init]{.title-ref} в роли [scheduler]{.title-ref}.
- Исправлено отсутствие сообщений об ошибках в Kafka consumer.
- Исправлено удаление частей конфигурации коннекторов в веб-интерфейсе.
- SDK обновлен до версии 2.11.1-0-r579.
- Cartridge обновлен до версии 2.8.2.
- expirationd обновлен до версии 1.5.0.
- Обновлены зависимости для веб-интерфейса.
- [Breaking change] Удалены настройки тенантов из веб-интерфейса.
- Модуль
compressдобавлен вsandbox. - Добавлены настройки Kafka consumer в
sandbox:consumer_seek_partitionsиconsumer_metadata. - Добавлены настройки Kafka consumer в
sandbox:consumer_pause,consumer_resumeиconsumer_status. - Добавлен параметр
initial_stateво входящую конфигурацию Kafka. - Добавлен менеджер для управления вводом Kafka с помощью флагов в
etcd. - В сообщение Kafka consumer добавлено название коннектора.
- Добавлены метрики для обработчика REST.
- Для
tdg_service_userдобавлена возможность вызова функцииbox.info(). - Добавлена поддержка алгоритма сжатия
zlibдля полей типов данных.
- Исправлен запуск задач перед бутстрапом vshard.
- Исправлена обработка сложных нулевых типов в сервисах.
- Исправлена визуальная ошибка в
EditDataActionForm. - Исправлена обработка параметра
lifetime_hours=0.
- Cartridge обновлен до версии 2.8.1.
- Добавлены аргументы
first_n_on_storageиafterфункцийdeleteиupdate. - Добавлена возможность чтения данных из Kafka в простом (plain) формате.
- Добавлена возможность повтора попытки загрузки первых N объектов из ремонтной очереди.
- Улучшена валидация имен функций.
- Исправлена потеря обнуляемых полей типа "массив" в возвращаемых типах сервисов.
- Исправлено присваивание значения
nullчерез GraphQL.
- Исправлен обход директорий в процессе распаковки конфигурации.
- Добавлен список допустимых расширений файлов в архиве с конфигурацией.
- SDK обновлен до версии 2.11.0-0-r563.
- Cartridge обновлен до версии 2.8.0.
- metrics обновлен до версии 1.0.0.
- kafka обновлен до версии 1.6.6.
-
icu-dateзаменен на модульdatetimeво внутренних механизмах. -
LuaJIT переведен в режим GC64.
-
Добавлена функция
repository.update_batch. -
Добавлена функция
repository.call_on_storage_batch. -
Добавлен экспериментальный режим построения индексов в фоне. Включается опцией
background_index_build. -
Модуль
clockдобавлен вsandbox. -
Добавлена возможность установки ключа (key) для отправки сообщений в kafka.
-
Watchdog выключен по умолчанию. Вместо него используется механизм
fiber.slice. -
Для
HARD_LIMITS_SCANNEDустановлено значениеunlimited. Вместо него используется механизмfiber.slice.
- Запрещены union-типы с одним полем.
- Удалены некорректные предупреждения в веб-интерфейсе при выполнении некоторых GraphQL-запросов.
- Исправлена ошибка при передаче аргументов сервисов через REST API.
- Исправлена ошибка при изменении union-типа на другой тип.
- Исправлено некорректное сообщение об ошибке при валидации объединений (union).
- Спейсы в хранилище vinyl теперь создаются только для типов со
стратегией удаления
cold_storage. - Исправлена ошибка при открытии вкладки Model до бутстрапа кластера.
- Исправлен запуск задач до полного завершения применения конфигурации.
- Исправлена ошибка: игнорирование изменений функций по умолчанию, используемых в модели, при загрузке конфигурации.
- Исправлена ошибка, связанная с контекстом запроса Kafka.
- Cartridge обновлен до сборки (5c30d1cc).
- expirationd обновлен до версии 1.4.0.
- metrics обновлен до версии 0.17.0.
- avro-schema обновлен до версии 3.1.0.
- smtp обновлен до версии 0.0.7.
- SDK обновлен до версии 2.10.6-0-r549.
- Добавлена поддержка aarch64 в Docker-сборки.
- Добавлена проверка двойной индексации полей.
- Изменено поведение кнопки Submit в компонентах Model и KeepVersionModel.
- Добавлена проверка на положительность значения параметра
jobs.max_jobs_in_parallel.
- Исправлена ошибка при добавлении полей обнуляемых логических типов.
- Исправлено возможное зависание во время локальных RPC-вызовов.
- Исправлено падение файбера, отвечающего за запуск работ на роли Storage.
- Обновлен Cartridge.
- undici обновлен с версии 5.8.2 до 5.19.1.
- SDK обновлен до версии 2.10.5-0-r543.
- Добавлена возможность получить
countдля типов используя REST и GraphQL API. - Исправлена проблема связанная с тем, что время старта задачи могло быть позднее времени завершения.
- SDK обновлен до версии 2.10.4-0-r538.
- Исправлена проблема с обновлением записей при использовании массивов записей.
- Добавлена возможность поместить набор объектов используя REST.
- SDK обновлен до версии 2.10.4-0-r532.
- Обновлен и улучшен модуль graphiql в WebUI.
- Добавлена отдача контекста (yield) в функции [cleanup]{.title-ref} журнала аудита и обычного журнала.
- SDK обновлен до версии 2.10.4-0-r518.
- Cartridge обновлен до сборки (f4258ae2).
- metrics обновлен до версии 0.15.1.
- kafka обновлен до версии 1.6.2.
- Добавлена возможность указывать в конфигурации аргументы, которые будут переданы в функцию задачи планировщика.
- Добавлена возможность запускать задачи на конкретных экземплярах Runner, которые помечены в конфигурации метками.
- Улучшены компоненты редактора:
- Полнотекстовый поиск на страницах Model и Code.
- Отображение номеров строк на страницах Model и Test.
- Сохранение состояния страниц GraphQL и Test при переходах и обновлении страниц.
- Имя токена теперь отображается в журнале аудита.
- Исправлена невозможность использовать тип
Enumв аргументах сервисов.
- SDK обновлен до версии 2.10.3-0-r510.
- Добавлено значение
0("хранить бесконечно") дляlifetime_hours. - В пространство sandbox добавлен модуль msgpack.
- Cartridge обновлен до версии 2.7.6.
- metrics обновлен до версии 0.15.0.
- SDK обновлен до версии 2.10.2-0-gf4228cb7d-r502.
- Отображение ошибок при вызовах сервисов через IPROTO.
- Исправлено некорректное отображение ошибок.
- Исправлена маршрутизация запросов при использовании пагинации.
- Исправлено некорректное предупреждение в коннекторе Kafka.
- Исправлено присвоение для вложенных записей в
repository.update.
- Добавлена поддержка заголовков Kafka во входящем коннекторе.
- Добавлен логический тип
Timestamp. - Добавлено значение
0("неограниченно") дляkeep_version_count. - Добавлена поддержка параметра
skip_resultвrepository.putиrepository.put_batch. - Добавлена функция sandbox
tonumber64. - Добавлена возможность задавать правила сопоставления (collations) для отдельных частей индекса.
- Журнал аудита теперь работает на основе модуля audit из Tarantool 2.10.
- Добавлена валидация для обнуляемых полей в
repository.update. - Убрана поддержка параметра
firstвrepository.delete. - Исправлена маршрутизация запросов при использовании пагинации.
- Исправлена некорректная валидация значений полей.
- Переименованы метрики
tdg_expirationвexpirationd.
- Добавлена страница настроек LDAP.
- Tarantool
flightrecвключен по умолчанию. - Реализована возможность включать компрессию для полей кортежа.
- Добавлена поддержка заголовков Kafka во входящем коннекторе.
- В модуль
datetimeсреды sandbox добавлены новые функции модуля Tarantooldatetime.
- Исправлен ряд ошибок фронтенда.
- Исправлено некорректное предупреждение в коннекторе Kafka.
- Исправлено некорректное сообщение об ошибке GraphQL в журнале.
- Файловый коннектор теперь ожидает доступности хотя бы одного
экземпляра с ролью
runner. - Исправлено присвоение для вложенных записей в
repository.update.
- Добавлен столбец Config file name в таблицу Configuration Files.
- Доступен Docker-образ с включенным режимом разработки.
- Исправлена фильтрация по неиндексированным полям логического типа - добавлено приведение полей к нативному виду.
- Значения метрик Kafka типа boolean заменены на числовые.
- Переработана фильтрация журнала и журнала аудита.
- Добавлена обработка ошибок в
repository.put_batch.
- Теперь для журнала отладки Kafka по умолчанию настроен уровень
детализации
all. - Поле плана запроса в GraphQL изменено на
_query_plan(одно нижнее подчеркивание) для соответствия спецификации GraphQL. - Из Kafka-коннектора и файлового коннектора удалены все строковые метрики.
- Добавлен флаг
skip_resultдля интерфейсов update и delete (iproto, REST, graphql, repository). - В окно Kafka-коннектора добавлены флажки журнала событий (logger).
- Теперь в формах создания и редактирования пользователя/токена можно фильтровать список ролей по тенантам.
- Добавлена настройка GraphQL для проверки консьюмеров Kafka
(
config.kafka_check_input). - В REST API добавлен параметр
indexed_by, позволяющий выбирать индекс для сканирования. - Теперь можно передавать параметры для LDAP-соединений.
- В окно конфигурации Kafka добавлена кнопка "Test Connection".
- Добавлена возможность загружать в конфигурацию самостоятельно определенные роли.
- В пространство sandbox добавлены функции
table.make_mapиtable.make_array. - К метрикам добавлена гистограмма просканированных и возвращенных кортежей.
- Жесткие лимиты (hard limits): значение
returnedпо умолчанию больше не равняется значениюscanned. - В окне создания пользователя значение поля tenant по умолчанию теперь "Default".
- В журнале событий (logger) Kafka больше нет режима отключения вывода.
- Вместе с сообщением Kafka в обработчик теперь передаются параметры
topic,key,offsetиpartition. - Теперь LDAP-пользователи, для которых указаны несколько групп, имеют доступ ко всем ролям, связанных с этими группами.
- Доработана проверка значений поля "Expires in" в окне создания пользователя.
- Исправлена ошибка "Cannot perform action with bucket" при вызове
repository.put_batch. - Исправлена ошибка, которая появлялась, если среди аргументов сервис-функции были enum-значения в кодировке utf-8.
- Теперь при неполадках с Kafka-коннектором показывается сообщение.
- Исправлена ошибка, возникавшая при попытке доступа LDAP-пользователя к GraphQL API.
- Удаление профиля доступа, который используется в роли, теперь не допускается.
- Пакет обновлен до версии Tarantool
2.8.3-0-g01023dbc2-r442.
- Добавлены метрики IProto API.
- В окне "Edit tenant" теперь отображаются сообщения об ошибках.
- Теперь с LDAP можно использовать UPN без учета регистра.
- В конфигурации Kafka-коннекторов появилась настройка
enable_debug. - Теперь для GraphQL можно указывать параметры
read,balance,mode. - Появилась возможность отправлять запросы к данным с помощью директивы
@options. - Плагин auth теперь позволяет возвращать устанавливаемые пользователем заголовки и коды статуса.
- Добавлены метрики для Kafka-коннектора.
- Добавлены новые метрики для файлового коннектора.
- Теперь можно настраивать логирование для Kafka-коннекторов с помощью
параметра
logger. Он принимает следующие значения:stderr,tdg,disable. - Теперь можно очистить спейсы определенного типа, передав имя этого
типа в API
maintenance.clear_data. - Завершение работы роли коннектора теперь происходит мягко (graceful shutdown).
- Доработано окно "Compare configuration".
- Стал удобнее формат метрик для REST API (
/data). - Отключено автозаполнение в форме редактирования ролей.
- Теперь сообщение об ошибке исчезает из окна удаления тенанта, когда ошибка исправлена.
- Из веб-интерфейса удален параметр Kafka-коннектора
ssl.key.password. - Исправлена проблема, из-за которой задача могла зависнуть, если некоторое время был недоступен экземпляр runner.
- Cartridge обновлен до версии 2.7.3.
- Возможность настраивать время ожидания для функций
map_reduceиcall_on_storage. - Статистика времени жизни бизнес-объектов добавлена к экспортируемым метрикам.
- Добавлена опция
use_active_directoryдля LDAP. - Добавлена опция
organizational_unitsдля LDAP.
- Кортежи с истекшим сроком жизни теперь не возвращаются при вызове.
- Исправлена обработка пустых фильтров в запросах.
- Исправлена ошибка, которая могла приводить к блокировке в нескольких подсистемах TDG.
- Исправлено несколько ошибок, связанных с задачами и отложенными работами.
- Исправлено присваивание массивов при обновлении данных.
- Исправлены ошибки, связанные с подсистемой для работы с LDAP.
- Авторизация через cookie-файлы при подключении к кластеру больше не допускается.
- Тип
nullв запросах GraphQL больше не допускается.
- Секция конфигурации "Expiration" переименована в "Versioning".
- Добавлена поддержка
ILIKE, т.е.LIKEбез учета регистра. LIKEиILIKEразрешены только для строк и в явном виде запрещены для индексов.- При трассировке теперь сохраняется иерархия структуры фрагментов span.
- Добавлены метрики для интерфейса управления данными REST.
- Добавлен интерфейс GraphQL, позволяющий блокировать секции конфигурации и предотвращать их удаление.
- API GraphQL
modelиexpirationзаменены на общий APIdata_type. - Добавлен интерфейс GraphQL для настройки метрик.
- Исправлены некоторые ошибки мультитенантности.
- Обратная итерация без курсора теперь запрещена.
- В API
modelбольше не допускается использовать полеnamespace.
- При обновлении объектов теперь проверяются поля типа
enum. - Добавлена проверка
input_processor.storage.type. - Появилась возможность добавлять несколько входов Kafka.
- Вместо файбера TDG
time_deltaтеперь нужно использовать параметр Cartridgeissues_limits. - Добавлена проверка, являются ли несуществующие типы данных элементами обнуляемого массива и используются ли они в качестве аргументов/возвращаемых значений.
- Исправлена обработка сценария, при котором в секции
expirationуказан тип, не указанный в секцииtypes. - Обнуляемые элементы массивов теперь обрабатываются корректно.
- Составные индексы, заданные по двум и более полям с логическими типами, теперь работают корректно.
- Стало невозможно назначить разным коннекторам одинаковые имена в конфигурации.
Выпуск первой публичной версии 2.1.0.