Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›Примечания к выпуску

Elasticsearch версия 8.13.0

Также см. Изменения, вносящие разрыв совместимости в 8.13.

Известные проблемы

  • Поиски, включающие узлы, обновленные до 8.13.0, и координатор узла, работающий на версии 8.12 или более ранней, могут генерировать дублированные бакеты при выполнении агрегаций date_histogram или histogram. Это может произойти во время постепенного обновления до 8.13 или при выполнении межкластерных поисков. (проблема: #108181).
  • Из-за ошибки в интегрированной JDK 22 узлы могут аварийно завершить работу при высокой нагрузке на память. Мы рекомендуем как можно скорее перейти на JDK 21.0.2, чтобы смягчить проблему.
  • Обновленные до 8.13.0 узлы не загружают постоянные задачи downsampling. Это препятствует их присоединению к кластеру, блокируя его обновление (проблема: #106880)

    Это затрагивает кластеры, работающие на версии 8.10 или выше, с активной конфигурацией downsampling настройки или конфигурацией, которая была активирована в какой-то момент после обновления до версии 8.10 или выше.

  • При обновлении кластеров с версии 8.11.4 или более ранней, если ваш кластер содержит узлы, не подходящие для роли master, информация о новой функциональности этих обновленных узлов может не быть должным образом зарегистрирована узлом master. Это может привести к тому, что некоторые новые функции, добавленные с 8.12.0, не будут доступны в обновленном кластере. Если ваш кластер работает на ECK 2.12.1 и выше, это может вызвать проблемы с завершением обновления. Для решения этой проблемы выполните постепенный перезапуск узлов, не подходящих для роли master, после того, как все узлы Elasticsearch будут обновлены. Эта проблема исправлена в 8.15.0.
  • Процесс pytorch_inference, используемый для запуска моделей машинного обучения, может потреблять большое количество памяти. В средах с ограниченным объемом доступной памяти механизм OS Out of Memory Killer будет убивать процесс pytorch_inference для освобождения памяти. Это может привести к отказу запросов инференса. Elasticsearch будет автоматически перезапускать процесс pytorch_inference после его завершения до четырёх раз в течение 24 часов. (проблема: #110530)

Изменения, вносящие разрыв совместимости

ES|QL
  • ESQL: Синтаксис - FROM METADATA больше не требует [] #105221
  • ES|QL: Удалено ключевое слово PROJECT из синтаксиса #105064
  • [ESQL] Удалены is_nan, is_finite и is_infinite #104091
TSDB
  • Изменено значение по умолчанию параметра индекса index.look_ahead_time с 2 часов до 30 минут. #103898
  • Снижено максимальное значение параметра индекса look_ahead_time с 7 дней до 2 часов. #103434

Исправления ошибок

Агрегации
  • Отключить параллельное сбор данных для агрегации по терминам, где min_doc_count равно 0 #106156
  • GlobalOrdCardinalityAggregator следует использовать HyperLogLogPlusPlus вместо HyperLogLogPlusPlusSparse #105546
Распределение
  • Исправить вычисление дискового пространства при инициализации новых фрагментов #102879
  • Исправить вычисление дискового пространства при инициализации неназначенных фрагментов в вычислении желаемого баланса #102207
Приложение
  • Исправить ошибку приложений поиска, где удаление алиаса перед удалением приложения периодически вызывало ошибки #106329
  • Использовать поиск для определения наличия данных в кластере #103920
  • [API коннектора] Исправление: поддержка типа списка в фильтрации расширенного значения фрагмента #105633
  • [API коннектора] Исправление стандартной сортировки в конечной точке списка SyncJob #105945
  • [API коннектора] Исправление сериализации параметров скрипта в службе индексации коннектора #106060
Аутентификация
  • Выполнение аутентификации SAML в общем пуле потоков #105232 (проблема: #104962)
Авторизация
  • Настройка перехвата запросов для определенных идентификаторов фрагментов #101656
Клиент
  • Проверка настроек в API ReloadSecureSettings #103176
Потоки данных
  • Apm-данные: исправление шаблонов компонентов @custom #104182
  • Избежать ложных срабатываний на промежуточных объектах в ecs@mappings #105440 (проблема: #102794)
  • Выполнить ленивый перенос с использованием внутреннего специального пользователя #104732 #104905 (проблема: #104732)
  • Исправить разрешение индекса записи, когда алиас указывает на TSDS #104440 (проблема: #104189)
  • x-pack/plugin/core: добавить match_mapping_type к динамическим шаблонам ecs@mappings #103035
Распределенный
  • Исправить вызовы logger Strings.format #104573
  • Нагрузка на память индексирования запросов в метриках узла APM #103520
ES|QL
  • ESQL: Добавить проверки одиночного значения для LIKE/RLIKE pushdown #103807 (проблема: #103806)
  • ESQL: Исправить фильтры pushdown за пределами диапазона #99961 (проблема: #99960)
  • ESQL: Исправить анализатор, чтобы не интерпретировать экранированный * как шаблон #105325 (проблема: #104955)
  • ESQL: Исправить ошибку загрузки неиндексированных текстовых полей #104553
  • ESQL: Исправить ошибку в грамматике, которая разрешала пробелы внутри шаблона id #105476 (проблема: #105441)
  • ESQL: Исправить замену вложенных выражений в aggs с несколькими параметрами #104718 (проблема: #104706)
  • ESQL: Исправить неправильное затемнение атрибутов в правилах pushdown #105650 (проблема: #105434)
  • ESQL: Улучшить pushdown определенных фильтров #103538 (проблема: #103536)
  • ESQL: разрешить null в date math #103610 (проблема: #103085)
  • ESQL: сделать cidr_match сжимаемым #105403 (проблема: #105376)
  • ES|QL: Отключить оптимизации, которые полагаются на Expression.nullable() #105691
  • ES|QL: Улучшить проверку типа в aggs для UNSIGNED_LONG, лучшая поддержка VERSION #104911 (проблема: #102961)
  • ES|QL: лучшее управление точными подполями для полей TEXT #103510 (проблема: #99899)
  • Исправить ошибку при сортировке несортируемых geo_point и cartesian_point #106351 (проблема: #106007)
  • Для пустых отображений использовать LocalRelation #105081 (проблема: #104809)
  • Возобновить драйвер при ошибке получения страниц #106392 (проблема: #106262)
  • Проверить логику KEEP, чтобы предотвратить дублирование имён столбцов #103316
  • ProjectOperator не должен сохранять ссылки на освобождённые блоки #105848
Двигатель
  • Учитывать текущее обновление данных при использовании памяти refresh #104122
  • Освободить буфер TranslogSnapshot после итерации #106398 (проблема: #106390)
Состояние
  • Сделать API состояния более устойчивым к кластерам с несколькими версиями #105789 (проблема: #90183)
  • Остановить периодический логирование состояния, когда es останавливается #105272
ILM+SLM
  • Удалить hashCode и equals из OperationModeUpdateTask #104265 (вопрос: #100871)
  • [ILM] Шаги удаления удаляют потоки данных только с одним индексом #105772
API индексов
  • Исправить require_alias неявное значение true для наличия #104099 (вопрос: #103945)
Инфраструктура/CLI
  • Исправить серверный cli, чтобы всегда передавать код выхода #104943
Инфраструктура/Ядро
  • Не включайте агент APM instrument, он не требуется для ручного отслеживания #105055
  • Исправить ложную проверку, вызванную силой выполняемых задач #104581 (вопрос: #104580)
  • Метрики: Разрешить AsyncCounters переключать поставщиков #103025
  • Метрики: Обрабатывать нулевые наблюдения в наблюдателях #103091
Инфраструктура/Жизненный цикл узла
  • Закрыть, а не остановить HttpServerTransport при завершении работы #102759 (вопрос: #102501)
Узел Ingest
  • Добавить стабильный конструктор ThreadPool для LogstashInternalBridge #105163
  • Добавление executedPipelines в конструктор копирования IngestDocument #105427
  • Вернуть "x-pack/plugin/apm-data: загрузка базы данных geoip при создании конвейера" #104505
  • X-pack/plugin/apm-data: исправить поддержку конвейера @custom #104113
Машинное обучение
  • Разрешить получение моделей инференции пользователем с правами только на чтение #105346
  • Избегать вычисления currentInferenceProcessors при каждом состоянии кластера #106057
  • Перехватить все потенциальные исключения в коде процессора ingest #105391
  • Изменили системного аудитора на использование уровней #105429
  • Во время обслуживания ML, сбросить задачи в состоянии сброса без соответствующей задачи #106062
  • Исправить categorize_text агрегацию, вложенную под пустые корзины #105987 (вопрос: #105836)
  • Исправить сброс задачи, если исходная задача сброса больше не существует. #106020
  • Повторить обновления идентификатора моментального снимка модели в конфигурации задачи #104077
  • Параметр модели OpenAI должен быть в настройках службы, а не в настройках задачи. Переместить поле конфигурации в настройки службы #105458
  • Отключить elser при удалении модели инференции #104230
Сопоставление
  • Исправить разбор сглаженных полей в подобъектах: false #105373
Сеть
  • Исправить использование после освобождения при завершении работы цикла событий #105486
Поиск
  • Исправить время переработки профиля для knn с предварительным фильтром #104150
  • Выполнить SearchService.Reaper #106544 (вопрос: #106543)
  • Переместить координацию TransportTermsEnumAction вне транспортных потоков #104408
  • Удалить использование SearchException без соответствующего кода состояния #105150
  • Требовать поле имени для inner_hits для сворачивания #104666
  • Добавить проверку поля _id при обновлении нового документа #103399 (вопрос: #102981)
Безопасность
  • Вернуть "Проверить настройки в ReloadSecureSettings API" #103310
Снимок/Восстановление
  • Не записывать время запроса s3 http, если оно недоступно #105103
  • URLRepository не должно блокировать завершение работы #105588
TLS
  • Учитывать параметр --pass в режиме certutil csr #106105
Преобразование
  • Исправить API _reset при вызове с force=true при сбое преобразования #106574 (вопрос: #106573)
  • Исправить ошибку, при которой алиасы целевых индексов не настраиваются для автономного преобразования #105499
  • Удалить дублируемые проверки контрольных точек #105164 (вопрос: #105106)
  • Возвращать результаты в порядке #105089 (вопрос: #104847)
  • Использовать выведенные схемы для определения правильного формата полей, даже если deduce_mappings==false #103682 (вопрос: #103115)
Поиск векторов
  • Исправить ошибку, когда вложенный предварительный фильтр knn может соответствовать вложенным документам #105994
Watcher
  • Обработка исключений при перезагрузке watcher #105442 (вопрос: #69842)

Устаревшие функции

Распределённые
  • DesiredNode: устареть node_version поле и сделать его необязательным (неиспользуемым) в текущем парсере #104209
Infra/Core
  • Устареть client.type #104574

Улучшения

Агрегации
  • Добавить параметр для отображения мапинга индекса для counted_keyword #103646
  • Ввести AggregatorReducer для уменьшения отпечатка агрегаций в координирующем узле #105207
  • Освободить ресурсы в BestBucketsDeferringCollector ранее #104893
  • Поддержка выборочной выборки в агрегации counted_terms #103846
Распределение
  • Учёт выделенного объёма диска #103903
  • Получение ожидаемого размера реплики из первичного #102078
Приложение
  • Добавить безсерверные области для API-интерфейсов подключения #104063
  • [API подключения] Изменение необходимых привилегий на indices:data/read(write) #105289
  • [API подключения] Реализация действия обновления index_name #104648
  • [API подключения] Поддержка фильтрации по имени, имени индекса в действии списка #105131
  • [API подключения] Поддержка фильтрации подключений по типу службы и запросу #105178
  • [API подключения] Поддержка обновления только значений конфигурации #105249
  • [API подключения] Добавить новое поле api_key_secret_id к подключению #104982
  • [API подключения] Реализация действия обновления состояния подключения #104750
  • [API подключения] Реализация конечной точки обновления действия native #104654
  • [API подключения] Реализация действия обновления типа службы #104643
  • [API подключения] Смягчение строгого синтаксического разбора ответов для операций получения/списка #104909
  • [Профилирование] Быстрее извлечь свойства из источника #104356
  • [Профилирование] Отметить все шаблоны как управляемые #103783
  • [Профилирование] Ускорить обработку стеков вызовов #104674
  • [Профилирование] Поддержка выборочной выборки общих событий #104730
  • [Профилирование] Постоянное использование кэша запросов фрагментов #103643
Аутентификация
  • Экспонировать метрики аутентификации API-ключа #103178
  • Экспонировать метрики аутентификации областей #104200
  • Экспонировать метрики аутентификации учетной записи службы #104043
  • Экспонировать метрики аутентификации токена #104142
  • Перезагружаемый пароль LDAP bind #104320
  • Поддержка match для API-ключа Query API #104594
Авторизация
  • [Решение безопасности] Разрешить право записи для роли kibana_system на индекс ответа конечной точки #103555
CRUD
  • Избежать многократного обертывания поисковых запросов в mget #104227 (проблема: #85069)
Клиент
  • Добавить rest спецификацию для API Query User #104529
Координация кластера
  • Добавить ссылку на документацию по устранению неполадок в журналы PeerFinder #104787
  • Сообщить текущего мастера в PeerFinder #104396
Потоки данных
  • Ввести ленивый переход для обновлений мапинга в потоках данных #103309 (проблема: #89346)
  • Использовать новый ignore_dynamic_beyond_limit в логах и данных метрик #105180
  • X-pack/plugin/apm-data: добавить динамическое значение для включения реестра шаблонов #104386 (проблема: #104385)
  • X-pack/plugin/core: переименовать шаблон double_metrics #103033
  • x-pack/plugin/apm-data: Добавить новое поле transaction.profiler_stack_trace_ids в traces-apm@mappings.yaml #105223
  • x-pack/plugin/apm-data: отобразить некоторые поля APM как уплощенные и исправить ошибку скрипта error.grouping_name #103032
  • x-pack/plugin/core: сделать автоматические переходы ленивыми #105273 (проблема: #104083)
Плагины обнаружения
  • Установить таймаут чтения для получения токена IMDSv2 #104407 (проблема: #104244)
Выборочная выборка
  • Поддержка версии транспортного протокола из 8.12 #104406
ES|QL
  • Добавить ES|QL асинхронный API удаления #103628
  • Избежать огромных блоков #103340
  • ESQL: Добавить функции TO_UPPER и TO_LOWER #104309
  • ESQL: Добавить возможность удалять поля null #102428
  • ESQL: Добавить проверку согласованности плана после каждого оптимизатора #105371
  • ESQL: Проверить существование поля перед загрузкой из _source #103632
  • ESQL: Отложить поиск инфраструктуры загрузки поля #103821
  • ESQL: Расширить поверхностную копию с векторизованными данными #103681 (проблема: #100528)
  • ESQL: Расширить команду STATS для поддержки агрегатных выражений #104958
  • ESQL: Определить не null для агрегированных полей #103673 (проблема: #102787)
  • ESQL: Вложенные выражения внутри команды stats #104387 (проблема: #99828)
  • ESQL: Предварительно выделить строки в TopNOperator #104796
  • ESQL: Ссылка на выражения, содержащие обратные кавычки, требует экранирования обратных кавычек. #100740 (проблема: #100312)
  • ESQL: Упростить оценку IS NULL/IS NOT NULL #103099 (проблема: #103097)
  • ESQL: Ускорить чтение многих null значений #105088
  • ESQL: Поддержка загрузки форм из источника в блоки WKB #104269
  • ESQL: Отслеживать остальную часть DocVector #103727
  • ESQL: MV_FIRST и MV_LAST #103928
  • ESQL: добавить date_diff функцию #104118 (проблема: #101942)
  • ESQL: Пропускать "[text_field] is not null" #105593
  • ES|QL асинхронный API запросов #103398
  • Подготовка плана обогащения для поддержки нескольких кластеров #104355
  • Чтение точек из источника для уменьшения потери точности #103698
  • Удалить устаревшие API блоков #103592
  • Зарезервировать байты перед сериализацией страницы #105269
  • Поддержка ST_CENTROID над пространственными точками #104218 (проблема: #104656)
  • Поддержка межкластерных запросов в ESQL #101640
  • Поддержка режима enrich ANY в межкластерных запросах #104840
  • Поддержка режима enrich координатора #104936
  • Поддержка режима enrich удалённого #104993
Гео
  • Добавить поддержку Well Known Binary (WKB) в API полей для пространственных полей #103461
  • Добавить возможность преобразования WKT в WKB напрямую #104030
Здоровье
  • Добавить метрики APM к HealthPeriodicLogger #102765
  • Расширить индикатор состояния repository_integrity для неизвестных и невалидных репозиториев #104614 (проблема: #103784)
ILM+SLM
  • Добавить "step":"ERROR" в ответ ILM explain для отсутствующей политики #103720 (проблема: #99030)
  • Добавить условия rollover по умолчанию в ответ ILM explain API #104721 (проблема: #103395)
  • ILM/SLM истории политики forcemerge в конфигурациях hot и dsl #103190
Infra/CLI
  • Добавить каталог диагностики replay в системные параметры JVM #103535
Infra/Разрывы цепи
  • Снизить минимальный интервал полного GC G1 #105259
Infra/Core
  • Добавление метрик пула потоков #102371
  • ES - наблюдение за документами с отклонениями #104859
  • Метрики пула потоков #104500
Infra/Метрики
  • Изменить имя метрики пула потоков для отклоненных #105015
Infra/Жизненный цикл узла
  • Ожидание завершения асинхронных поисков при выключении #101487
Infra/Транспортный API
  • Сделать метод ParentTaskAssigningClient.getRemoteClusterClient возвращающим также ParentTaskAssigningClient #100813
Узел Ingest
  • Добавление реализации ActionRequestLazyBuilder для RequestBuilder #104927
  • Добавление интерфейса RequestBuilder #104778
  • Добавление пользовательской ошибки для проблем с графиком конвейеров, применяемых к документу #105196
  • Улучшение производительности API ingest simulate verbose #105265
  • Кэширование процессора geoip ingest без результатов из базы данных #104092
  • Ограничение количества вложенных конвейеров, которые могут быть выполнены #105428
  • Модификация билдеров запросов #104636
Java Low Level REST Client
  • Установка имени потока, используемого REST клиентом #103160
Machine Learning
  • Добавить необязательную конфигурацию обрезки (взвешенное ранжирование по терминам) к запросу расширения текста #102862
  • Добавить службу вывода text_embedding с многоязычными моделями multilingual-e5 и пользовательскими моделями eland #104949
  • Добавить 3 автоматических перезапуска для процессов pytorch_inference, которые неожиданно останавливаются #104433
  • Добавить поддержку службы вывода Cohere #104559
  • Всегда проверять пики и спады, а также изменения в агрегации точек изменения #103922
  • Применить оконную обработку и чанкинг к длинным документам #104363
  • Автоматически загрузить модель ELSER при PUT в _inference #104334
  • Лучшая обработка количества выделений в pytorch_inference в случае, если hardware_concurrency завершается ошибкой #2607
  • Улучшения агрегации обнаружения изменений #102824
  • Условно отправлять поле размеров в запросах openai #105299 (проблема: #105005)
  • Конечная точка для поиска позиций совпадений шаблона Grok #104394
  • Обеспечить уникальные идентификаторы между моделями вывода и развертывания обученных моделей #103996
  • Предоставить некоторые метрики ML через APM #102584
  • Сделать task_type необязательным в API _inference #104483
  • Обновить сообщение missingTrainedModel, включив: возможно, вам нужно его создать #104155
  • Обновить MKL до версии 2024.0 на Linux x86_64 #2619
  • Обновить PyTorch до версии 2.1.2. #2588
  • Обновить zlib до версии 1.2.13 в Windows #2588
  • Использовать Boost.JSON для обработки JSON #2614
  • Проверить идентификаторы моделей вывода #103669
Mapping
  • Добавить настройку index.mapping.total_fields.ignore_dynamic_beyond_limit для игнорирования динамических полей при достижении предела полей #96235
  • Сделать предел полей более предсказуемым #102885
Network
  • Удалить ненужную информацию из TransportNodesStatsAction.NodeStatsRequest #102559 (проблема: #100878)
Percolator
  • Вернуть matched_queries в Percolator #103084 (проблема: #10163)
Query Languages
  • Введение метода Alias.unwrap #104575
Search
  • Динамически настраивать время истечения кэша метрик узла #104460
  • Улучшение: Метрики для времени выполнения поиска с использованием слушателей действий #104996
  • Производительность Field caps pt2 #105941
  • Поиск значений поля field-caps с использованием карты вместо цикла по массиву #105770
  • Флаг в _field_caps для возвращения только полей со значениями в индексе #103651
  • Включать лучшие результаты в профилировании и toString для запросов на основе автоматов #105468
  • Метрики для задержек поиска #102557
  • Подсчет байтов ответа поиска #103763 (проблема: #102657)
  • Устранение неточностей в парсинге msearch #103232
  • Решение проблем с API кластера #102726
  • Повторное использование тестов маппера числовых полей в других модулях #99142 (проблема: #92947)
  • Метрика задержки первого байта S3 #102435
  • Обновление метрики задержки S3 для использования микросекунд #103633
  • Обновление до Lucene 9.10.0 #105578
Security
  • API добавления пользователей запроса #104033
  • Добавление поля ApiKey истечения срока действия в журнал аудита #103959
  • Добавление срока действия для API ключа обновления api #103453
  • Добавление более строгой валидации для времени истечения срока действия API ключа #103973
  • Добавление поддержки simple_query_string для API ключа запроса #104132
  • Добавление поддержки параметра type для сортировки в API запроса ключа #104625
  • Поддержка агрегаций для API получения информации о ключе запроса #104895
  • Перезагружаемые на лету учетные данные удаленного кластера #102798
Снимок/Восстановление
  • Добавление запроса s3 HeadObject для запроса статистики #105105
  • Экспонирование OperationPurpose в журналах доступа S3 с помощью параметра запроса с пользовательским форматом #105044
  • Исправление гонки, убывания и временной зависимости кэша блоков #104784
  • Приостановка снимков фрагментов при плановом завершении работы #101717
  • Бесконечная повторная попытка при ошибках чтения блоков индексов s3 #103300
Хранилище
  • По умолчанию отображать скрытые хранилища фрагментов #103710
TLS
  • elasticsearch-certutil cert теперь проверяет цепочку сертификации выпустившего сертификат #103948
TSDB
  • Улучшение эффективности хранения для полей, не являющихся метриками, в TSDB #99747
  • Введение экспериментального типа поля pass-through #103648
  • Вложение объектов pass-through в объекты #105062
  • Ограничение использования определенных агрегаций при необходимости выполнения сортировки #104665
  • Небольшое улучшение агрегации временных рядов #106288
Преобразование
  • Разрешить преобразованиям использовать PIT с удаленными кластерами снова #105192 (проблема: #104518)
  • Преобразования: Добавление базового API параметра статистики #104878
Поиск векторов
  • Добавление новых типов индексов векторов int8_flat и flat #104872
  • Добавление поддержки более чем одного inner_hit при поиске вложенных векторов #104006
  • Делаем k и num_candidates необязательными для поиска knn #101209 (проблема: #97533)

Новые возможности

Потоки данных
  • Добавление параметра require_data_stream к запросам индексирования для принудительного указания, что операции индексирования направлены на поток данных #101872 (проблема: #97032)
  • Перенаправление операций инжеста, завершившихся сбоем, в хранилище ошибок при его наличии #103481
ES|QL
  • ESQL: Введение настроек режима для ENRICH #103949
  • ESQL: добавление оператора =~ (равенство без учета регистра) #103656
Состояние
  • Создание индикатора состояния DSL в составе API состояния #103130
Инфраструктура/Ядро
  • Добавление задач gradle и кода для изменения и доступа к соответствиям между идентификаторами версий и версиями релизов #103627
Карта
  • Добавление unmatch_mapping_type и поддержка массива типов #103171 (проблемы: #102807, #102795)
Поиск
  • Добавление функции проверки дублирования слов к анализу Nori #103325 (проблема: #103321)
  • [Синонимы] Отметить синонимы как GA #103223

Улучшения

Языки запросов
  • Обновление ANTLR4 до 4.13.1 #105334 (проблема: #102953)
Поиск
  • Обновление до Lucene 9.9.0 #102782
  • Обновление до Lucene 9.9.1 #103387
  • Обновление до Lucene 9.9.2 #104753

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/release-notes-8.13.0.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API