Справочник по коннектору Elastic Jira
Коннектор Elastic Jira — это коннектор для Atlassian Jira. Этот коннектор написан на Python с использованием фреймворка коннекторов Elastic.
Посмотреть исходный код этого коннектора (ветка 8.17, совместимая с Elastic 8.17).
Справочник по управляемому коннектору Elastic
Просмотр справки по управляемому соединителю Elastic
Доступность и предварительные требования
Этот соединитель доступен как управляемый соединитель в Elastic Cloud, начиная с версии 8.9.1.
Поддержка Jira Data Center была добавлена в версии 8.13.0 в техническом предварительном просмотре и может быть изменена. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без каких-либо гарантий. Функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA.
Для использования этого соединителя напрямую в Elastic Cloud выполните все требования к управляемым соединителям.
Создание соединителя Jira
Использование пользовательского интерфейса
Для создания нового соединителя Jira:
- В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Соединители из главного меню или используйте поле глобального поиска.
- Следуйте инструкциям для создания нового родного соединителя Jira.
Для дополнительных операций см. Пользовательский интерфейс соединителей в Kibana.
Использование API
Вы можете использовать Elasticsearch API для создания соединителя, чтобы создать новый родной соединитель Jira.
Например:
resp = client.connector.put(
connector_id="my-{service-name-stub}-connector",
index_name="my-elasticsearch-index",
name="Content synced from {service-name}",
service_type="{service-name-stub}",
is_native=True,
)
print(resp) const response = await client.connector.put({
connector_id: "my-{service-name-stub}-connector",
index_name: "my-elasticsearch-index",
name: "Content synced from {service-name}",
service_type: "{service-name-stub}",
is_native: true,
});
console.log(response); PUT _connector/my-jira-connector
{
"index_name": "my-elasticsearch-index",
"name": "Content synced from Jira",
"service_type": "jira",
"is_native": true
} Вам также потребуется создать ключ API для использования соединителем.
Пользователю требуются права кластера manage_api_key, manage_connector и write_connector_secrets для программирования создания ключей API.
Для создания ключа API для соединителя:
-
Выполните следующую команду, заменив указанные значения. Обратите внимание на значения
idиencodedиз ответа:resp = client.security.create_api_key( name="my-connector-api-key", role_descriptors={ "my-connector-connector-role": { "cluster": [ "monitor", "manage_connector" ], "indices": [ { "names": [ "my-index_name", ".search-acl-filter-my-index_name", ".elastic-connectors*" ], "privileges": [ "all" ], "allow_restricted_indices": False } ] } }, ) print(resp)const response = await client.security.createApiKey({ name: "my-connector-api-key", role_descriptors: { "my-connector-connector-role": { cluster: ["monitor", "manage_connector"], indices: [ { names: [ "my-index_name", ".search-acl-filter-my-index_name", ".elastic-connectors*", ], privileges: ["all"], allow_restricted_indices: false, }, ], }, }, }); console.log(response);POST /_security/api_key { "name": "my-connector-api-key", "role_descriptors": { "my-connector-connector-role": { "cluster": [ "monitor", "manage_connector" ], "indices": [ { "names": [ "my-index_name", ".search-acl-filter-my-index_name", ".elastic-connectors*" ], "privileges": [ "all" ], "allow_restricted_indices": false } ] } } } -
Используйте значение
encodedдля хранения секрета соединителя и обратите внимание на значениеidиз этого ответа:resp = client.perform_request( "POST", "/_connector/_secret", headers={"Content-Type": "application/json"}, body={ "value": "encoded_api_key" }, ) print(resp)const response = await client.transport.request({ method: "POST", path: "/_connector/_secret", body: { value: "encoded_api_key", }, }); console.log(response);POST _connector/_secret { "value": "encoded_api_key" } -
Используйте ключ API
idи секрет соединителяidдля обновления соединителя:resp = client.connector.update_api_key_id( connector_id="my_connector_id>", api_key_id="API key_id", api_key_secret_id="secret_id", ) print(resp)const response = await client.connector.updateApiKeyId({ connector_id: "my_connector_id>", api_key_id: "API key_id", api_key_secret_id: "secret_id", }); console.log(response);PUT /_connector/my_connector_id>/_api_key_id { "api_key_id": "API key_id", "api_key_secret_id": "secret_id" }
Подробную информацию обо всех доступных API соединителей см. в документации Elasticsearch API.
Использование
Для использования этого соединителя напрямую в Elastic Cloud см. Управляемые соединители Elastic.
Для дополнительных операций см. Пользовательский интерфейс соединителей в Kibana.
Совместимость
- Jira Cloud, Jira Server и Jira Data Center версий 7 и выше.
Конфигурация
Для настройки соединителя требуются следующие поля конфигурации:
- Источник данных Jira
- Выпадающий список для определения типа платформы Jira:
Jira Cloud,Jira ServerилиJira Data Center. Значение по умолчанию —Jira Cloud. - Имя пользователя Jira Data Center
- Имя пользователя учетной записи для Jira Data Center.
- Пароль Jira Data Center
- Пароль учетной записи для использования в Jira Data Center.
- Идентификатор учетной записи службы Jira Cloud
- Адрес электронной почты для аутентификации с Jira Cloud. Пример: jane.doe@example.com
- Токен API Jira Cloud
- Токен API для аутентификации с Jira Cloud.
- Имя пользователя Jira Server
- Имя пользователя учетной записи для Jira Server.
- Пароль Jira Server
- Пароль учетной записи для использования в Jira Server.
- Идентификатор учетной записи службы Jira Cloud
- Электронный адрес учетной записи Jira Cloud.
- Токен API Jira Cloud
- Токен API для аутентификации с Jira Cloud.
- URL хоста Jira
-
Домен, на котором размещен Jira. Примеры:
- Ключи проекта Jira
-
Список ключей проекта, разделенных запятыми (Project Keys), для извлечения данных из Jira server или cloud. Если значение равно
*, соединитель извлечёт данные из всех проектов, присутствующих в настроенных проектах. Значение по умолчанию —*. Примеры:-
EC,TP -
*
-
- Включить SSL
- Включить или выключить проверку SSL. Значение по умолчанию —
False. - Сертификат SSL
-
Содержимое сертификата SSL. Примечание: если значение
ssl_enabledравноFalse, значениеssl_caбудет проигнорировано. Пример сертификата:-----BEGIN CERTIFICATE----- MIID+jCCAuKgAwIBAgIGAJJMzlxLMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNVBAYT ... 7RhLQyWn2u00L7/9Omw= -----END CERTIFICATE-----
- Включить безопасность на уровне документов
-
Переключатель для включения безопасности на уровне документов (DLS). При включении полные синхронизации извлекут списки управления доступом для каждого документа и сохранят их в поле
_allow_access_control. Синхронизации контроля доступа извлекают списки управления доступом пользователей и сохраняют их в отдельном индексе.Для доступа к данным пользователей в администрировании Jira учетная запись, которую вы создали, должна иметь право Доступ к продукту для администрирования Jira. Этот доступ должен быть предоставлен администратором из Atlassian Admin, и предоставленный уровень доступа должен быть
Product Admin.
Документы и синхронизации
Соединитель синхронизирует следующие объекты и сущности:
-
Проекты
- Включает метаданные, такие как описание, ключ проекта, тип проекта, имя руководителя и т. д.
-
Задачи
- Все типы задач, включая Задачи, Баги, Подзадачи, Улучшения, История и т. д.
- Включает метаданные, такие как тип задачи, данные родительской задачи, исправляющие версии, затронутые версии, решение, вложения, комментарии, данные подзадач, приоритет, пользовательские поля и т. д.
- Вложения
Примечание: Архивированные проекты и задачи не индексируются.
- Содержимое файлов размером более 10 МБ не будет извлечено. (Управляемые соединители могут использовать локальный сервис извлечения для обработки файлов больших бинарных файлов.)
- Разрешения не синхронизируются по умолчанию. Сначала необходимо включить DLS. В противном случае все индексированные документы в развертывании Elastic будут видимы всем пользователям с доступом к этому развертыванию Elastic.
Типы синхронизации
Полные синхронизации поддерживаются по умолчанию для всех соединителей.
Этот соединитель также поддерживает инкрементные синхронизации.
Правила синхронизации
Основные правила синхронизации одинаковы для всех соединителей и доступны по умолчанию.
Этот соединитель поддерживает расширенные правила синхронизации для удалённого фильтра. Эти правила охватывают сложные сценарии запросов и фильтрации, которые нельзя выразить с помощью основных правил синхронизации. Расширенные правила синхронизации определяются с помощью JSON-фрагмента DSL, специфичного для источника.
Пример расширенных правил синхронизации
Пример 1: Запросы для индексирования содержимого на основе статуса задач Jira.
[
{
"query": "project = Collaboration AND status = 'In Progress'"
},
{
"query": "status IN ('To Do', 'In Progress', 'Closed')"
}
] Пример 2: Запрос для индексирования данных на основе приоритета задач для заданных проектов.
[
{
"query": "priority in (Blocker, Critical) AND project in (ProjA, ProjB, ProjC)"
}
] Пример 3: Запрос для индексирования данных на основе исполнителя и времени создания.
[
{
"query": "assignee is EMPTY and created < -1d"
}
] Безопасность на уровне документа
Безопасность на уровне документа (DLS) позволяет ограничить доступ к документам на основе разрешений пользователя. Обратитесь к настройкам на этой странице, чтобы узнать, как включить DLS для этого соединителя.
Включение DLS для вашего соединителя приведёт к существенному снижению производительности, так как API-вызовы к источнику данных, необходимые для этой функциональности, имеют ограничения по скорости. Это влияет на скорость получения вашего содержимого.
Когда data_source установлено в Confluence Data Center или Server, соединитель будет получать только 1000 пользователей для синхронизации управления доступом из-за ограничения в используемом API.
Обратитесь к DLS в приложениях поиска, чтобы узнать, как импортировать данные из соединителя с включённой DLS при создании приложения поиска. В примере используется SharePoint Online в качестве источника данных, но те же шаги применимы к любому соединителю.
Извлечение содержимого
Известные проблемы
-
Включение безопасности на уровне документа влияет на производительность.
Включение DLS для вашего соединителя приведёт к существенному снижению производительности, так как API-вызовы к источнику данных, необходимые для этой функциональности, имеют ограничения по скорости. Это влияет на скорость получения вашего содержимого.
Обратитесь к Известным проблемам для получения списка известных проблем для всех соединителей.
Отладка
См. Отладку.
Безопасность
См. Безопасность.
Самостоятельно управляемый соединитель
Просмотреть справочник по самостоятельно управляемому соединителю
Доступность и предварительные требования
Этот коннектор доступен в качестве управляемого пользователем коннектора. Этот управляемый пользователем коннектор совместим с версиями Elastic 8.7.0+.
Поддержка Jira Data Center была добавлена в 8.13.0 в техническом предварительном просмотре и может быть изменена. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без каких-либо гарантий. Функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA.
Для использования этого коннектора, выполните все требования к управляемому пользователем коннектору.
Создать коннектор Jira
Использовать пользовательский интерфейс
Для создания нового коннектора Jira:
- В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержание → Коннекторы из основного меню или используйте поле глобального поиска.
- Следуйте инструкциям по созданию нового управляемого пользователем коннектора Jira.
Использовать API
Вы можете использовать API Elasticsearch создания коннектора для создания нового управляемого пользователем коннектора Jira.
Например:
resp = client.connector.put(
connector_id="my-{service-name-stub}-connector",
index_name="my-elasticsearch-index",
name="Content synced from {service-name}",
service_type="{service-name-stub}",
)
print(resp) const response = await client.connector.put({
connector_id: "my-{service-name-stub}-connector",
index_name: "my-elasticsearch-index",
name: "Content synced from {service-name}",
service_type: "{service-name-stub}",
});
console.log(response); PUT _connector/my-jira-connector
{
"index_name": "my-elasticsearch-index",
"name": "Content synced from Jira",
"service_type": "jira"
} Вам также потребуется создать ключ API для использования коннектором.
Пользователю необходимы права кластера manage_api_key, manage_connector и write_connector_secrets для программной генерации ключей API.
Для создания ключа API для коннектора:
-
Выполните следующую команду, заменив значения там, где необходимо. Обратите внимание на возвращаемые значения
encodedиз ответа:resp = client.security.create_api_key( name="connector_name-connector-api-key", role_descriptors={ "connector_name-connector-role": { "cluster": [ "monitor", "manage_connector" ], "indices": [ { "names": [ "index_name", ".search-acl-filter-index_name", ".elastic-connectors*" ], "privileges": [ "all" ], "allow_restricted_indices": False } ] } }, ) print(resp)const response = await client.security.createApiKey({ name: "connector_name-connector-api-key", role_descriptors: { "connector_name-connector-role": { cluster: ["monitor", "manage_connector"], indices: [ { names: [ "index_name", ".search-acl-filter-index_name", ".elastic-connectors*", ], privileges: ["all"], allow_restricted_indices: false, }, ], }, }, }); console.log(response);POST /_security/api_key { "name": "connector_name-connector-api-key", "role_descriptors": { "connector_name-connector-role": { "cluster": [ "monitor", "manage_connector" ], "indices": [ { "names": [ "index_name", ".search-acl-filter-index_name", ".elastic-connectors*" ], "privileges": [ "all" ], "allow_restricted_indices": false } ] } } } - Обновите файл
config.ymlс значением ключа APIencoded.
Для получения подробной информации обо всех доступных API коннекторов обратитесь к документации API Elasticsearch.
Использование
Чтобы использовать этот коннектор как управляемый пользователем коннектор, см. Управляемые пользователем коннекторы. Для дополнительных операций по использованию см. Интерфейс коннекторов в Kibana.
Совместимость
- Jira Cloud, Jira Server и Jira Data Center версии 7 или более поздние.
Настройка
При использовании процесса управляемого пользователем коннектора, эти поля будут изначально использовать настройки по умолчанию, установленные в исходном коде коннектора. Они устанавливаются в определении функции get_default_configuration.
Эти настраиваемые поля будут отображаться со соответствующими метками в пользовательском интерфейсе Kibana. После подключения вы сможете обновить эти значения в Kibana.
Для настройки коннектора требуются следующие поля конфигурации:
-
data_source - Выпадающий список для определения типа платформы Jira:
Jira Cloud,Jira ServerилиJira Data Center. Значение по умолчаниюJira Cloud. -
data_center_username - Имя пользователя учетной записи для Jira Data Center.
-
data_center_password - Пароль учетной записи для использования с Jira Data Center.
-
username - Имя пользователя учетной записи для Jira Server.
-
password - Пароль учетной записи для использования с Jira Server.
-
account_email - Адрес электронной почты для аутентификации с Jira Cloud. Пример: jane.doe@example.com
-
api_token - Токен API для аутентификации с Jira Cloud.
-
jira_url -
Домен, где размещен Jira. Примеры:
-
projects -
Список проектов, разделенных запятыми, для получения данных из Jira server или cloud. Если значение равно
*, коннектор будет получать данные из всех проектов, присутствующих в настроенных проектах. Значение по умолчанию*. Примеры:-
EC,TP -
*Это поле можно обойти с помощью расширенных правил синхронизации.
-
-
ssl_enabled - Включить или выключить проверку SSL. Значение по умолчанию
False. -
ssl_ca -
Содержимое сертификата SSL. Примечание: в случае, если
ssl_enabledравноFalse, значениеssl_caбудет проигнорировано. Пример сертификата:-----BEGIN CERTIFICATE----- MIID+jCCAuKgAwIBAgIGAJJMzlxLMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNVBAYT ... 7RhLQyWn2u00L7/9Omw= -----END CERTIFICATE-----
-
retry_count - Количество попыток повторной обработки после неудачного запроса к Jira. Значение по умолчанию 3.
-
concurrent_downloads - Количество одновременных загрузок для извлечения содержимого вложений. Это ускоряет извлечение содержимого вложений. По умолчанию 100.
-
use_document_level_security - Переключатель для включения безопасности на уровне документа (DLS). При включении полные синхронизации будут получать списки управления доступом для каждого документа и хранить их в поле
_allow_access_control. Синхронизации управления доступом извлекают списки управления доступом пользователей и хранят их в отдельном индексе.Для доступа к данным пользователей в административной панели Jira, учетная запись, которую вы создали, должна иметь права Доступ к продукту для Jira Administration. Этот доступ должен предоставить администратор из Atlassian Admin, и уровень доступа должен быть
Product Admin. -
use_text_extraction_service - Требует отдельного развертывания услуги Elastic Text Extraction Service. Требует, чтобы настройки конвейера индексации отключали извлечение текста. Значение по умолчанию
False.
Развертывание с помощью Docker
Вы можете развернуть коннектор Jira в качестве управляемого пользователем коннектора с помощью Docker. Следуйте этим инструкциям.
Шаг 1: Скачать файл образца конфигурации
Загрузите файл образца конфигурации. Вы можете загрузить его вручную или выполнить следующую команду:
curl https://raw.githubusercontent.com/elastic/connectors/main/config.yml.example --output ~/connectors-config/config.yml
Не забудьте обновить значение аргумента --output, если имя вашей директории отличается или вы хотите использовать другое имя файла конфигурации.
Шаг 2: Обновить файл конфигурации для вашего управляемого пользователем коннектора
Обновите файл конфигурации с указанными ниже настройками, чтобы соответствовать вашей среде:
-
elasticsearch.host -
elasticsearch.api_key -
connectors
Если вы запускаете службу коннектора на Docker-образе Elasticsearch и Kibana, ваш файл конфигурации будет выглядеть так:
# When connecting to your cloud deployment you should edit the host value
elasticsearch.host: http://host.docker.internal:9200
elasticsearch.api_key: <ELASTICSEARCH_API_KEY>
connectors:
-
connector_id: <CONNECTOR_ID_FROM_KIBANA>
service_type: jira
api_key: <CONNECTOR_API_KEY_FROM_KIBANA> # Optional. If not provided, the connector will use the elasticsearch.api_key instead Использование elasticsearch.api_key — рекомендуемый метод аутентификации. Однако вы также можете использовать elasticsearch.username и elasticsearch.password для аутентификации с вашим экземпляром Elasticsearch.
Примечание: вы можете изменить другие настройки по умолчанию, просто раскомментировав соответствующие параметры в файле конфигурации и изменив их значения.
Шаг 3: Запустить образ Docker
Запустите образ Docker с сервисом коннектора с помощью следующей команды:
docker run \ -v ~/connectors-config:/config \ --network "elastic" \ --tty \ --rm \ docker.elastic.co/enterprise-search/elastic-connectors:8.17.3 \ /app/bin/elastic-ingest \ -c /config/config.yml
Для получения более подробной информации обратитесь к DOCKER.md в репозитории elastic/connectors.
Найдите все доступные образы Docker в официальном реестре.
У нас также есть быстрый вариант самообслуживания с использованием Docker Compose, позволяющий одновременно запустить все необходимые службы: Elasticsearch, Kibana и службу коннекторов. Обратитесь к этому README в репозитории elastic/connectors для получения дополнительной информации.
Документы и синхронизации
Коннектор синхронизирует следующие объекты и сущности:
-
Проекты
- Включает метаданные, такие как описание, ключ проекта, тип проекта, имя руководителя и т. д.
-
Задачи
- Все типы задач, включая Задачи, Баги, Подзадачи, Улучшения, Истории и т. д.
- Включает метаданные, такие как тип задачи, сведения о родительской задаче, версии исправления, затронутые версии, разрешение, вложения, комментарии, сведения о подзадачах, приоритет, пользовательские поля и т. д.
- Вложения
Примечание: Архивированные проекты и задачи не индексируются.
- Содержимое файлов размером более 10 МБ не будет извлечено
- Разрешения не синхронизируются по умолчанию. Сначала необходимо включить DLS. В противном случае, все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому развертыванию Elastic.
Типы синхронизации
Полные синхронизации поддерживаются по умолчанию для всех коннекторов.
Этот коннектор также поддерживает инкрементные синхронизации.
Правила синхронизации
Основные правила синхронизации одинаковы для всех коннекторов и доступны по умолчанию.
Этот коннектор поддерживает расширенные правила синхронизации для удалённого фильтра. Эти правила охватывают сложные сценарии запросов и фильтрации, которые нельзя выразить с помощью основных правил синхронизации. Расширенные правила синхронизации определяются с помощью специфичного для источника фрагмента JSON DSL.
Пример расширенных правил синхронизации
Пример 1: Запросы для индексации содержимого на основе статуса задач Jira.
[
{
"query": "project = Collaboration AND status = 'In Progress'"
},
{
"query": "status IN ('To Do', 'In Progress', 'Closed')"
}
] Пример 2: Запрос для индексации данных на основе приоритета задач для заданных проектов.
[
{
"query": "priority in (Blocker, Critical) AND project in (ProjA, ProjB, ProjC)"
}
] Пример 3: Запрос для индексации данных на основе назначенного исполнителя и времени создания.
[
{
"query": "assignee is EMPTY and created < -1d"
}
] Безопасность на уровне документов
Безопасность на уровне документов (DLS) позволяет ограничить доступ к документам на основе разрешений пользователя. Обратитесь к настройкам на этой странице, чтобы узнать, как включить DLS для этого коннектора.
Включение DLS для вашего коннектора может привести к значительному снижению производительности, так как API-вызовы к источнику данных, необходимые для этой функции, ограничены по скорости. Это влияет на скорость получения вашего содержимого.
Когда data_source установлен на Confluence Data Center или Server, коннектор будет извлекать только 1000 пользователей для синхронизации управления доступом, из-за ограничений в используемом API.
Обратитесь к DLS в приложениях поиска, чтобы узнать, как импортировать данные из коннектора с включенной DLS при создании приложения поиска. Пример использует SharePoint Online в качестве источника данных, но те же шаги применимы ко всем коннекторам.
Извлечение содержимого
Операции с подключением самообслуживания
Конечный тест
Фреймворк коннекторов позволяет операторам запускать функциональные тесты с реальным источником данных. Обратитесь к Тестирование коннекторов для получения более подробной информации.
Для выполнения конечного тестирования коннектора Jira выполните следующую команду:
$ make ftest NAME=jira
Для более быстрых тестов добавьте флаг DATA_SIZE=small:
make ftest NAME=jira DATA_SIZE=small
Известные проблемы
-
Включение безопасности на уровне документов влияет на производительность.
Включение DLS для вашего коннектора может привести к значительному снижению производительности, так как API-вызовы к источнику данных, необходимые для этой функции, ограничены по скорости. Это влияет на скорость получения вашего содержимого.
Обратитесь к Известные проблемы для списка известных проблем всех коннекторов.
Устранение неполадок
См. Устранение неполадок.
Безопасность
См. Безопасность.
© 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/es-connectors-jira.html