@hubex/mcp 0.9.20260922 → 0.9.20260923

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10908,7 +10908,7 @@
10908
10908
  "service": "SC",
10909
10909
  "method": "DELETE",
10910
10910
  "path": "/ServiceContract",
10911
- "summary": "Метод для удаления договоров",
10911
+ "summary": "Удаление договоров обслуживания",
10912
10912
  "tags": [
10913
10913
  "ServiceContract"
10914
10914
  ],
@@ -10922,7 +10922,7 @@
10922
10922
  "service": "SC",
10923
10923
  "method": "DELETE",
10924
10924
  "path": "/ServiceContract/{contractID}/assets",
10925
- "summary": "Метод удаления объектов связанных с договорами",
10925
+ "summary": "Удаляет список объектов, привязанных к сервисному договору",
10926
10926
  "tags": [
10927
10927
  "ServiceContract"
10928
10928
  ],
@@ -10938,7 +10938,7 @@
10938
10938
  "service": "SC",
10939
10939
  "method": "DELETE",
10940
10940
  "path": "/ServiceContract/{contractID}/assets/{assetID}",
10941
- "summary": "Метод удаления объекта сязанного с сервисным договором",
10941
+ "summary": "Удаляет объект, привязанный к сервисному договору",
10942
10942
  "tags": [
10943
10943
  "ServiceContract"
10944
10944
  ],
@@ -10955,7 +10955,7 @@
10955
10955
  "service": "SC",
10956
10956
  "method": "DELETE",
10957
10957
  "path": "/ServiceContract/{contractID}/attachments",
10958
- "summary": "Метод помечает связку договора и вложения как удаленную",
10958
+ "summary": "Помечает связи договора и вложений как удалённые",
10959
10959
  "tags": [
10960
10960
  "ServiceContract"
10961
10961
  ],
@@ -10971,7 +10971,7 @@
10971
10971
  "service": "SC",
10972
10972
  "method": "DELETE",
10973
10973
  "path": "/ServiceContract/{contractID}/contacts",
10974
- "summary": "Метод удаления контактов привязанных к договорам",
10974
+ "summary": "Удаляет список контактов, привязанных к сервисному договору",
10975
10975
  "tags": [
10976
10976
  "ServiceContract"
10977
10977
  ],
@@ -10987,7 +10987,7 @@
10987
10987
  "service": "SC",
10988
10988
  "method": "DELETE",
10989
10989
  "path": "/ServiceContract/{contractID}/contacts/{contactID}",
10990
- "summary": "Метод удаления контакта привязанного к договору по Id",
10990
+ "summary": "Удаляет контакт, привязанный к сервисному договору",
10991
10991
  "tags": [
10992
10992
  "ServiceContract"
10993
10993
  ],
@@ -11004,7 +11004,7 @@
11004
11004
  "service": "SC",
11005
11005
  "method": "DELETE",
11006
11006
  "path": "/ServiceContract/{id}",
11007
- "summary": "Метод для удаления договора",
11007
+ "summary": "Удаление договора обслуживания по идентификатору",
11008
11008
  "tags": [
11009
11009
  "ServiceContract"
11010
11010
  ],
@@ -11020,7 +11020,7 @@
11020
11020
  "service": "SC",
11021
11021
  "method": "GET",
11022
11022
  "path": "/ServiceContract",
11023
- "summary": "Метод получения списка договоров обслуживания",
11023
+ "summary": "Получение списка договоров обслуживания",
11024
11024
  "tags": [
11025
11025
  "ServiceContract"
11026
11026
  ],
@@ -11045,7 +11045,7 @@
11045
11045
  "service": "SC",
11046
11046
  "method": "GET",
11047
11047
  "path": "/ServiceContract/{contractID}",
11048
- "summary": "Метод получения договора обслуживания по ID",
11048
+ "summary": "Получение договора обслуживания по идентификатору",
11049
11049
  "tags": [
11050
11050
  "ServiceContract"
11051
11051
  ],
@@ -11061,7 +11061,7 @@
11061
11061
  "service": "SC",
11062
11062
  "method": "GET",
11063
11063
  "path": "/ServiceContract/{contractID}/assets",
11064
- "summary": "Метод получения списка объектов сервисного договора",
11064
+ "summary": "Возвращает список объектов, привязанных к сервисному договору",
11065
11065
  "tags": [
11066
11066
  "ServiceContract"
11067
11067
  ],
@@ -11080,7 +11080,7 @@
11080
11080
  "service": "SC",
11081
11081
  "method": "GET",
11082
11082
  "path": "/ServiceContract/{contractID}/attachment/{attachmentID}",
11083
- "summary": "Метод получения прикрепленного к договору файла вложения",
11083
+ "summary": "Возвращает прикреплённый к договору файл-вложение",
11084
11084
  "tags": [
11085
11085
  "ServiceContract"
11086
11086
  ],
@@ -11099,7 +11099,7 @@
11099
11099
  "service": "SC",
11100
11100
  "method": "GET",
11101
11101
  "path": "/ServiceContract/{contractID}/attachments",
11102
- "summary": "Метод получения списка файлов вложений прикрепленных к договору",
11102
+ "summary": "Возвращает список файлов-вложений, прикреплённых к договору",
11103
11103
  "tags": [
11104
11104
  "ServiceContract"
11105
11105
  ],
@@ -11119,7 +11119,7 @@
11119
11119
  "service": "SC",
11120
11120
  "method": "GET",
11121
11121
  "path": "/ServiceContract/{contractID}/attachments/{attachmentID}",
11122
- "summary": "Метод получения TemporaryRedirect на временную ссылку для скачки файла",
11122
+ "summary": "Возвращает временную ссылку для скачивания файла-вложения",
11123
11123
  "tags": [
11124
11124
  "ServiceContract"
11125
11125
  ],
@@ -11129,9 +11129,7 @@
11129
11129
  ],
11130
11130
  "queryParams": [
11131
11131
  "thumbnailSize",
11132
- "noRedirect",
11133
- "offset",
11134
- "fetch"
11132
+ "noRedirect"
11135
11133
  ],
11136
11134
  "hasBody": false,
11137
11135
  "bodyRequired": false
@@ -11141,7 +11139,7 @@
11141
11139
  "service": "SC",
11142
11140
  "method": "GET",
11143
11141
  "path": "/ServiceContract/{contractID}/attributes",
11144
- "summary": "Возвращает список пользовтельских полей по договору",
11142
+ "summary": "Возвращает список пользовательских полей сервисного договора",
11145
11143
  "tags": [
11146
11144
  "ServiceContract"
11147
11145
  ],
@@ -11160,7 +11158,7 @@
11160
11158
  "service": "SC",
11161
11159
  "method": "GET",
11162
11160
  "path": "/ServiceContract/{contractID}/contacts",
11163
- "summary": "Метод получения списка контактов ответственных по договору",
11161
+ "summary": "Возвращает список контактов, привязанных к сервисному договору",
11164
11162
  "tags": [
11165
11163
  "ServiceContract"
11166
11164
  ],
@@ -11179,13 +11177,15 @@
11179
11177
  "service": "SC",
11180
11178
  "method": "HEAD",
11181
11179
  "path": "/ServiceContract",
11182
- "summary": "Метод получения общего количества договоров обслуживания",
11180
+ "summary": "Получение общего количества договоров обслуживания",
11183
11181
  "tags": [
11184
11182
  "ServiceContract"
11185
11183
  ],
11186
11184
  "pathParams": [],
11187
11185
  "queryParams": [
11188
11186
  "searchText",
11187
+ "offset",
11188
+ "fetch",
11189
11189
  "taskID",
11190
11190
  "assetID",
11191
11191
  "includeUniversalContractsInAssetFilter",
@@ -11202,7 +11202,7 @@
11202
11202
  "service": "SC",
11203
11203
  "method": "POST",
11204
11204
  "path": "/ContractAttributes",
11205
- "summary": "Обновляет сведения о пользовательских полях объектов",
11205
+ "summary": "Обновляет сведения о пользовательских полях договоров",
11206
11206
  "tags": [
11207
11207
  "ContractAttributes"
11208
11208
  ],
@@ -11216,7 +11216,7 @@
11216
11216
  "service": "SC",
11217
11217
  "method": "POST",
11218
11218
  "path": "/ServiceContract",
11219
- "summary": "Метод для создания или обновления договора/договоров обслуживания",
11219
+ "summary": "Создание договоров обслуживания",
11220
11220
  "tags": [
11221
11221
  "ServiceContract"
11222
11222
  ],
@@ -11230,7 +11230,7 @@
11230
11230
  "service": "SC",
11231
11231
  "method": "POST",
11232
11232
  "path": "/ServiceContract/{contractID}/assets",
11233
- "summary": "Добавить список объектов к договору",
11233
+ "summary": "Добавляет список объектов к сервисному договору",
11234
11234
  "tags": [
11235
11235
  "ServiceContract"
11236
11236
  ],
@@ -11246,7 +11246,7 @@
11246
11246
  "service": "SC",
11247
11247
  "method": "POST",
11248
11248
  "path": "/ServiceContract/{contractID}/attachments",
11249
- "summary": "Метод связывающий договор и вложение",
11249
+ "summary": "Связывает договор с существующими вложениями",
11250
11250
  "tags": [
11251
11251
  "ServiceContract"
11252
11252
  ],
@@ -11262,7 +11262,7 @@
11262
11262
  "service": "SC",
11263
11263
  "method": "POST",
11264
11264
  "path": "/ServiceContract/{contractID}/attachments/upload/fromBody",
11265
- "summary": "Метод загружает файл на файловый сервер и привязывает его к договору. Данные будут получены из тела запроса.",
11265
+ "summary": "Загружает файл на файловый сервер и привязывает его к договору (данные из тела запроса)",
11266
11266
  "tags": [
11267
11267
  "ServiceContract"
11268
11268
  ],
@@ -11278,7 +11278,7 @@
11278
11278
  "service": "SC",
11279
11279
  "method": "POST",
11280
11280
  "path": "/ServiceContract/{contractID}/attachments/upload/fromForm",
11281
- "summary": "Метод загружает файл на файловый сервер и привязывает его к договору. Данные будут получены из формы.",
11281
+ "summary": "Загружает файл на файловый сервер и привязывает его к договору (данные из формы)",
11282
11282
  "tags": [
11283
11283
  "ServiceContract"
11284
11284
  ],
@@ -11294,7 +11294,7 @@
11294
11294
  "service": "SC",
11295
11295
  "method": "POST",
11296
11296
  "path": "/ServiceContract/{contractID}/contacts",
11297
- "summary": "Метод добавления контактов к договорам",
11297
+ "summary": "Добавляет список контактов к сервисному договору",
11298
11298
  "tags": [
11299
11299
  "ServiceContract"
11300
11300
  ],
@@ -11310,7 +11310,7 @@
11310
11310
  "service": "SC",
11311
11311
  "method": "POST",
11312
11312
  "path": "/ServiceContract/{contractID}/v2/attachments/upload/fromForm",
11313
- "summary": "Метод загружает файлы на файловый сервер и привязывает его к договору. Данные будут получены из формы.",
11313
+ "summary": "Загружает несколько файлов на файловый сервер и привязывает их к договору (данные из формы)",
11314
11314
  "tags": [
11315
11315
  "ServiceContract"
11316
11316
  ],
@@ -11326,7 +11326,7 @@
11326
11326
  "service": "SC",
11327
11327
  "method": "PUT",
11328
11328
  "path": "/ServiceContract",
11329
- "summary": "Метод изменения существующей заявки(ок)",
11329
+ "summary": "Изменение договоров обслуживания",
11330
11330
  "tags": [
11331
11331
  "ServiceContract"
11332
11332
  ],
@@ -11340,7 +11340,7 @@
11340
11340
  "service": "SC",
11341
11341
  "method": "PUT",
11342
11342
  "path": "/ServiceContract/{contractID}/assets/{assetID}",
11343
- "summary": "Добавить объект к договору",
11343
+ "summary": "Добавляет объект к сервисному договору",
11344
11344
  "tags": [
11345
11345
  "ServiceContract"
11346
11346
  ],
@@ -11359,7 +11359,7 @@
11359
11359
  "service": "SC",
11360
11360
  "method": "PUT",
11361
11361
  "path": "/ServiceContract/{contractID}/contacts/{contactID}",
11362
- "summary": "Метод добавления контакта к договору",
11362
+ "summary": "Добавляет контакт к сервисному договору",
11363
11363
  "tags": [
11364
11364
  "ServiceContract"
11365
11365
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hubex/mcp",
3
- "version": "0.9.20260922",
3
+ "version": "0.9.20260923",
4
4
  "type": "module",
5
5
  "description": "MCP server for managing HubEx test data (tasks, assets, companies, users) via the HubEx REST API",
6
6
  "author": "HubEx Team",
@@ -21,7 +21,7 @@
21
21
  "Assets"
22
22
  ],
23
23
  "summary": "Импорт объектов и оборудования из Excel-файла",
24
- "description": "## Пример запроса:\r\n`POST /Assets`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Объекты и оборудование`.\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт объектов принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Объекты и оборудование` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `AssetsImport`.",
24
+ "description": "## Пример запроса:\r\n`POST /Assets`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом, имя которого зависит от `Accept-Language`\r\n(ru: `Объекты и оборудование`, en: `Assets`).\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт объектов принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями\r\n (`Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,\r\n заголовок `X-Application-Errors: InvalidData`).\r\n- 409 Conflict: отсутствует лист с ожидаемым именем (`WrongFile`) или лист пустой (`EmptyFile`).\r\n Имя листа зависит от `Accept-Language` (ru: `Объекты и оборудование`, en: `Assets`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- Отсутствует обязательное поле формы `File` или тело запроса некорректно —\r\n обрабатывается model binding / global exception handling (не 409 Conflict).\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `AssetsImport`.",
25
25
  "parameters": [
26
26
  {
27
27
  "name": "X-Application-ID",
@@ -209,7 +209,7 @@
209
209
  "description": "Недостаточно прав для импорта объектов."
210
210
  },
211
211
  "409": {
212
- "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
212
+ "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк — Excel-файл с комментариями и заголовком `X-Application-Errors: InvalidData`;\r\nпри прочих конфликтах — JSON System.Collections.Generic.List`1.",
213
213
  "content": {
214
214
  "text/plain": {
215
215
  "schema": {
@@ -251,7 +251,7 @@
251
251
  "Companies"
252
252
  ],
253
253
  "summary": "Импорт компаний из Excel-файла",
254
- "description": "## Пример запроса:\r\n`POST /Companies`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Компании`.\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт компаний принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Компании` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `CompaniesImport`.",
254
+ "description": "## Пример запроса:\r\n`POST /Companies`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом, имя которого зависит от `Accept-Language`\r\n(ru: `Компании`, en: `Companies`).\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт компаний принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями\r\n (`Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,\r\n заголовок `X-Application-Errors: InvalidData`).\r\n- 409 Conflict: отсутствует лист с ожидаемым именем (`WrongFile`) или лист пустой (`EmptyFile`).\r\n Имя листа зависит от `Accept-Language` (ru: `Компании`, en: `Companies`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- Отсутствует обязательное поле формы `File` или тело запроса некорректно —\r\n обрабатывается model binding / global exception handling (не 409 Conflict).\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `CompaniesImport`.",
255
255
  "parameters": [
256
256
  {
257
257
  "name": "X-Application-ID",
@@ -439,7 +439,7 @@
439
439
  "description": "Недостаточно прав для импорта компаний."
440
440
  },
441
441
  "409": {
442
- "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
442
+ "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк — Excel-файл с комментариями и заголовком `X-Application-Errors: InvalidData`;\r\nпри прочих конфликтах — JSON System.Collections.Generic.List`1.",
443
443
  "content": {
444
444
  "text/plain": {
445
445
  "schema": {
@@ -481,7 +481,7 @@
481
481
  "Materials"
482
482
  ],
483
483
  "summary": "Импорт материалов из Excel-файла (v1)",
484
- "description": "## Пример запроса:\r\n`POST /Materials`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Материалы`.\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт материалов принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Материалы` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `MaterialImport`.",
484
+ "description": "## Пример запроса:\r\n`POST /Materials`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом, имя которого зависит от `Accept-Language`\r\n(ru: `Материалы`, en: `Materials`).\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт материалов принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями\r\n (`Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,\r\n заголовок `X-Application-Errors: InvalidData`).\r\n- 409 Conflict: отсутствует лист с ожидаемым именем (`WrongFile`) или лист пустой (`EmptyFile`).\r\n Имя листа зависит от `Accept-Language` (ru: `Материалы`, en: `Materials`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- Отсутствует обязательное поле формы `File` или тело запроса некорректно —\r\n обрабатывается model binding / global exception handling (не 409 Conflict).\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `MaterialImport`.",
485
485
  "parameters": [
486
486
  {
487
487
  "name": "X-Application-ID",
@@ -669,7 +669,7 @@
669
669
  "description": "Недостаточно прав для импорта материалов."
670
670
  },
671
671
  "409": {
672
- "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
672
+ "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк — Excel-файл с комментариями и заголовком `X-Application-Errors: InvalidData`;\r\nпри прочих конфликтах — JSON System.Collections.Generic.List`1.",
673
673
  "content": {
674
674
  "text/plain": {
675
675
  "schema": {
@@ -711,7 +711,7 @@
711
711
  "Materials"
712
712
  ],
713
713
  "summary": "Импорт материалов из Excel-файла (v2)",
714
- "description": "## Пример запроса:\r\n`POST /Materials/v2.0`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Материалы`.\r\n \r\nПеред записью строки группируются по `MaterialErpID` (для каждого ERP ID сохраняется последняя запись).\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт материалов принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Материалы` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `MaterialImport`.",
714
+ "description": "## Пример запроса:\r\n`POST /Materials/v2.0`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом, имя которого зависит от `Accept-Language`\r\n(ru: `Материалы`, en: `Materials`).\r\n \r\nПеред записью строки группируются по `MaterialErpID` (для каждого ERP ID сохраняется последняя запись).\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт материалов принят в обработку.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями\r\n (`Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,\r\n заголовок `X-Application-Errors: InvalidData`).\r\n- 409 Conflict: отсутствует лист с ожидаемым именем (`WrongFile`) или лист пустой (`EmptyFile`).\r\n Имя листа зависит от `Accept-Language` (ru: `Материалы`, en: `Materials`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- Отсутствует обязательное поле формы `File` или тело запроса некорректно —\r\n обрабатывается model binding / global exception handling (не 409 Conflict).\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `MaterialImport`.",
715
715
  "parameters": [
716
716
  {
717
717
  "name": "X-Application-ID",
@@ -899,7 +899,7 @@
899
899
  "description": "Недостаточно прав для импорта материалов."
900
900
  },
901
901
  "409": {
902
- "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
902
+ "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк — Excel-файл с комментариями и заголовком `X-Application-Errors: InvalidData`;\r\nпри прочих конфликтах — JSON System.Collections.Generic.List`1.",
903
903
  "content": {
904
904
  "text/plain": {
905
905
  "schema": {
@@ -941,7 +941,7 @@
941
941
  "Tasks"
942
942
  ],
943
943
  "summary": "Импорт заявок из Excel-файла",
944
- "description": "## Пример запроса:\r\n`POST /Tasks`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Заявки`.\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт заявок принят в обработку.\r\nПосле импорта асинхронно отправляются уведомления и запросы на перевод по стадиям.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Заявки` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `TaskImport`.",
944
+ "description": "## Пример запроса:\r\n`POST /Tasks`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом, имя которого зависит от `Accept-Language`\r\n(ru: `Заявки`, en: `Tasks`).\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт заявок принят в обработку.\r\nПосле импорта асинхронно отправляются уведомления и запросы на перевод по стадиям.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями\r\n (`Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,\r\n заголовок `X-Application-Errors: InvalidData`).\r\n- 409 Conflict: отсутствует лист с ожидаемым именем (`WrongFile`) или лист пустой (`EmptyFile`).\r\n Имя листа зависит от `Accept-Language` (ru: `Заявки`, en: `Tasks`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- Отсутствует обязательное поле формы `File` или тело запроса некорректно —\r\n обрабатывается model binding / global exception handling (не 409 Conflict).\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `TaskImport`.",
945
945
  "parameters": [
946
946
  {
947
947
  "name": "X-Application-ID",
@@ -1129,7 +1129,7 @@
1129
1129
  "description": "Недостаточно прав для импорта заявок."
1130
1130
  },
1131
1131
  "409": {
1132
- "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
1132
+ "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк — Excel-файл с комментариями и заголовком `X-Application-Errors: InvalidData`;\r\nпри прочих конфликтах — JSON System.Collections.Generic.List`1.",
1133
1133
  "content": {
1134
1134
  "text/plain": {
1135
1135
  "schema": {
@@ -1171,7 +1171,7 @@
1171
1171
  "Users"
1172
1172
  ],
1173
1173
  "summary": "Импорт пользователей из Excel-файла",
1174
- "description": "## Пример запроса:\r\n`POST /Users`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом `Пользователи`.\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт пользователей принят в обработку.\r\nПосле импорта отправляются приглашения на верификацию аккаунта.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями.\r\n- 409 Conflict: отсутствует лист `Пользователи` (`WrongFile`) или лист пустой (`EmptyFile`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- 409 Conflict: отсутствует обязательное поле формы `File` или тело запроса некорректно.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `UserImport`.",
1174
+ "description": "## Пример запроса:\r\n`POST /Users`\r\n \r\nContent-Type: `multipart/form-data`\r\n \r\nПоле формы: `File` — Excel-файл (.xlsx) с листом, имя которого зависит от `Accept-Language`\r\n(ru: `Пользователи`, en: `Users`).\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует. Импорт пользователей принят в обработку.\r\nПосле импорта отправляются приглашения на верификацию аккаунта.\r\n \r\n## Пример ошибки валидации файла (409):\r\nВозвращается Excel-файл с теми же данными и комментариями в ячейках с ошибками.\r\nВ заголовке ответа присутствует `X-Application-Errors: InvalidData`.\r\n \r\n## Пример ошибки (409):\r\n```json\r\n[\r\n {\r\n \"traceIdentifier\": \"00-abc123\",\r\n \"code\": \"InvalidData\",\r\n \"message\": \"Загружен неверный файл\"\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 409 Conflict: в файле есть ошибки валидации строк/ячеек — возвращается Excel с комментариями\r\n (`Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,\r\n заголовок `X-Application-Errors: InvalidData`).\r\n- 409 Conflict: отсутствует лист с ожидаемым именем (`WrongFile`) или лист пустой (`EmptyFile`).\r\n Имя листа зависит от `Accept-Language` (ru: `Пользователи`, en: `Users`).\r\n- 409 Conflict: файл создан в неподдерживаемом приложении (например, MyOffice) — `UnsupportedFileFormat`.\r\n- Отсутствует обязательное поле формы `File` или тело запроса некорректно —\r\n обрабатывается model binding / global exception handling (не 409 Conflict).\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `UserImport`.",
1175
1175
  "parameters": [
1176
1176
  {
1177
1177
  "name": "X-Application-ID",
@@ -1359,7 +1359,7 @@
1359
1359
  "description": "Недостаточно прав для импорта пользователей."
1360
1360
  },
1361
1361
  "409": {
1362
- "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк возвращается Excel-файл с комментариями;\r\nпри прочих ошибках — тело System.Collections.Generic.List`1.",
1362
+ "description": "Ошибка валидации файла или бизнес-конфликт.\r\nПри ошибках строк — Excel-файл с комментариями и заголовком `X-Application-Errors: InvalidData`;\r\nпри прочих конфликтах — JSON System.Collections.Generic.List`1.",
1363
1363
  "content": {
1364
1364
  "text/plain": {
1365
1365
  "schema": {