Микросервис indexer-orchestration

В статье описываются функции, логика работы, конфигурация и методы микросервиса indexer-orchestration.

Микросервис indexer-orchestration предоставляет функциональность для управления заданиями на индексацию.

Доступ к сервису предоставляется по запросу.

Логика работы Copy-icon

В работе микросервиса используется сущность ScheduledBaselineDto, которая содержит информацию о запланированном запуске индексации (идентификатор, название, тип и др.).

Аутентификация Copy-icon

При обращении к сервису аутентификация не нужна.

Service context path Copy-icon

/api/indexer-orchestration/

Настройки и параметры конфигураци Copy-icon

Параметры конфигурации указываются в Vault.

Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.

По умолчанию

{
  "env": {
    "JAVA_XMS": "XXm",
    "JAVA_XMX": "YYYm"
  }
}


Copy-icon
Указываемые на каждом отдельном стенде

{
  "env": {

   "INDEXER_URL": "url_доступа_к_indexer",
    "SEARCH_ADMIN_URL": "url_доступа_к_search-admin",
    "OAUTH_ZITADEL_ISSUER_URI": "url_Zitadel",

   "OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
    "OAUTH_ECOM_ISSUER_URI": "url_ECOM_OAuth",
    "OAUTH_ZITADEL_CLIENT_ID": "токен_приложения_Zitadel"
  }
}

Copy-icon

Методы микросервиса

  • Создание нового задания на индексацию POST запрос, /v1/index/scheduled/baseline
Request parameters

Отсутствуют.

Copy-icon
Request body sample
{
  "name": "string",
  "scheduleType": "SIMPLE",
  "cron": "string",
  "time": "2025-04-14T19:16:17.194Z",
  "interval": 1
}


Примеры:
{name: "По средам", scheduleType: SCHEDULE, cron: "30 12 * * WED"}
{name: "Вечером", scheduleType: SINGLE, time: "2024-10-01T00:00:00"}
{name: "Каждый час", scheduleType: PERIOD, interval: 3600}
Copy-icon
Response sample
{
  "id": "string",
  "name": "string",
  "scheduleType": "SIMPLE",
  "cron": "string",
  "time": "2025-04-14T19:16:17.217Z",
  "interval": 1,
  "status": "PENDING",
  "lastExecution": "2025-04-14T19:16:17.217Z"
}
Copy-icon
Response codes

200 - операция прошла успешно, создано новое задание на индексацию

  • Получение заданий на индексацию постранично с пагинацией, фильтрацией и сортировкой POST запрос, /v1/index/scheduled/baseline/page
Request parameters

Отсутствуют.

Copy-icon
Request body sample
{
  "sort": [
    {
      "sortBy": "string",
      "direction": "ASC"
    }
  ],
  "page": 0,
  "size": 1,
  "filter": {
    "searchTerm": "string",
    "name": "string",
    "type": [
      "SIMPLE"
    ],
    "status": [
      "PENDING"
    ],
    "startDate": "2025-04-14T19:26:03.535Z",
    "endDate": "2025-04-14T19:26:03.535Z"
  }
}
Copy-icon
Response sample
{
  "content": [
    {
      "id": "string",
      "name": "string",
      "scheduleType": "SIMPLE",
      "cron": "string",
      "time": "2025-04-14T19:26:03.536Z",
      "interval": 1,
      "status": "PENDING",
      "lastExecution": "2025-04-14T19:26:03.536Z"
    }
  ],
  "number": 0,
  "size": 0,
  "totalElements": 0,
  "pageable": {
    "paged": true,
    "unpaged": true,
    "pageNumber": 0,
    "pageSize": 0,
    "sort": {
      "direction": "string",
      "nullHandling": "string",
      "ascending": true,
      "property": "string",
      "ignoreCase": true
    },
    "offset": 0
  },
  "last": true,
  "totalPages": 0,
  "sort": {
    "direction": "string",
    "nullHandling": "string",
    "ascending": true,
    "property": "string",
    "ignoreCase": true
  },
  "first": true,
  "numberOfElements": 0,
  "empty": true
}
Copy-icon
Response codes

200 - операция прошла успешно

  • Получение отфильтрованного списка заданий на индексацию POST запрос, /v1/index/scheduled/baseline/list
Request parameters

Отсутствуют.

Copy-icon
Request body sample
{
  "searchTerm": "string",
  "name": "string",
  "type": [
    "SIMPLE"
  ],
  "status": [
    "PENDING"
  ],
  "startDate": "2025-04-14T19:31:26.498Z",
  "endDate": "2025-04-14T19:31:26.498Z"
}
Copy-icon
Response sample
[
  {
    "id": "string",
    "name": "string",
    "scheduleType": "SIMPLE",
    "cron": "string",
    "time": "2025-04-14T19:31:26.498Z",
    "interval": 1,
    "status": "PENDING",
    "lastExecution": "2025-04-14T19:31:26.498Z"
  }
]
Copy-icon
Response codes

200 - операция прошла успешно

  • Получение задания на индексацию по ID GET запрос, /v1/index/scheduled/baseline/{id}
Request parameters

id - path-параметр, обязательный: уникальный идентификатор задания на индексацию

Copy-icon
Response sample
{
  "id": "string",
  "name": "string",
  "scheduleType": "SIMPLE",
  "cron": "string",
  "time": "2025-04-14T19:35:12.527Z",
  "interval": 1,
  "status": "PENDING",
  "lastExecution": "2025-04-14T19:35:12.527Z"
}
Copy-icon
Response codes

200 - операция прошла успешно

404 - задание на индексацию с таким ID не найдено

  • Удаление задания на индексацию по ID - DELETE запрос, /v1/index/scheduled/baseline/{id}
Request parameters

id - path-параметр, обязательный: уникальный идентификатор задания на индексацию

Copy-icon
Response sample

Отсутствует. В ответе приходит только код операции, например, 200

Response codes

200 - операция прошла успешно

404 - задание на индексацию с таким ID не найдено

  • Обновление задания на индексацию по ID PATCH запрос, /v1/index/scheduled/baseline/{id}
Request parameters

id - path-параметр, обязательный: уникальный идентификатор задания на индексацию

Copy-icon
Request body sample
{
  "name": "string",
  "scheduleType": "SIMPLE",
  "cron": "string",
  "time": "2025-04-14T19:43:54.569Z",
  "interval": 1
}
Copy-icon
Response sample
{
  "id": "string",
  "name": "string",
  "scheduleType": "SIMPLE",
  "cron": "string",
  "time": "2025-04-14T19:43:54.570Z",
  "interval": 1,
  "status": "PENDING",
  "lastExecution": "2025-04-14T19:43:54.570Z"
}
Copy-icon
Response codes

200 - операция прошла успешно

404 - задание на индексацию с таким ID не найдено