@hubex/mcp 0.2.0
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.
- package/.env.example +54 -0
- package/CONNECTING.md +260 -0
- package/README.md +266 -0
- package/dist/auth.js +226 -0
- package/dist/config.js +120 -0
- package/dist/generated/manifest.js +3643 -0
- package/dist/guides/field-notes.json +27 -0
- package/dist/guides/loader.js +32 -0
- package/dist/guides/service-map.js +6 -0
- package/dist/http.js +93 -0
- package/dist/index/store.js +134 -0
- package/dist/index/types.js +1 -0
- package/dist/index.js +20 -0
- package/dist/paths.js +20 -0
- package/dist/pii/fields.js +100 -0
- package/dist/pii/mask.js +50 -0
- package/dist/pii/strategies.js +88 -0
- package/dist/schema/build-index.js +67 -0
- package/dist/schema/deref.js +87 -0
- package/dist/schema/describe.js +65 -0
- package/dist/server.js +62 -0
- package/dist/token-prompt.js +41 -0
- package/dist/tools/curated.js +151 -0
- package/dist/tools/discovery.js +187 -0
- package/dist/tools/guides.js +126 -0
- package/dist/tools/registry.js +37 -0
- package/dist/tools/request.js +170 -0
- package/dist/tools/types.js +1 -0
- package/docs/guides/assets.md +334 -0
- package/docs/guides/attributes.md +125 -0
- package/docs/guides/checklisttemplates.md +154 -0
- package/docs/guides/companies.md +57 -0
- package/docs/guides/dictionaries.md +64 -0
- package/docs/guides/lifecycle.md +263 -0
- package/docs/guides/materials.md +135 -0
- package/docs/guides/notifications.md +184 -0
- package/docs/guides/roles.md +125 -0
- package/docs/guides/sla.md +130 -0
- package/docs/guides/start.md +67 -0
- package/docs/guides/taskchecklists.md +149 -0
- package/docs/guides/taskcreate.md +260 -0
- package/docs/guides/taskedit.md +277 -0
- package/docs/guides/tasktypes.md +156 -0
- package/docs/guides/users.md +71 -0
- package/generated/index.dev.json +18776 -0
- package/generated/index.prod.json +18858 -0
- package/package.json +48 -0
- package/swagger/dev/ADM.json +27777 -0
- package/swagger/dev/AUTH.json +1739 -0
- package/swagger/dev/AUTHN.json +1250 -0
- package/swagger/dev/AUTHZ.json +1404 -0
- package/swagger/dev/CM.json +309 -0
- package/swagger/dev/COMMON.json +6543 -0
- package/swagger/dev/ES.json +28029 -0
- package/swagger/dev/EXPORT.json +4575 -0
- package/swagger/dev/IMPORT.json +1479 -0
- package/swagger/dev/LIC.json +224 -0
- package/swagger/dev/MSG.json +7883 -0
- package/swagger/dev/NEWS.json +348 -0
- package/swagger/dev/PA.json +5981 -0
- package/swagger/dev/PMP.json +3196 -0
- package/swagger/dev/PROXY.json +416 -0
- package/swagger/dev/REPORT.json +3921 -0
- package/swagger/dev/SC.json +3771 -0
- package/swagger/dev/SLA.json +2837 -0
- package/swagger/dev/TSTG.json +4981 -0
- package/swagger/dev/UI.json +4720 -0
- package/swagger/dev/WH.json +16796 -0
- package/swagger/dev/WORK.json +36024 -0
- package/swagger/dev/WSP.json +1612 -0
- package/swagger/prod/ADM.json +27777 -0
- package/swagger/prod/AUTH.json +1308 -0
- package/swagger/prod/AUTHN.json +2710 -0
- package/swagger/prod/AUTHZ.json +896 -0
- package/swagger/prod/CM.json +162 -0
- package/swagger/prod/COMMON.json +4910 -0
- package/swagger/prod/ES.json +28029 -0
- package/swagger/prod/EXPORT.json +3091 -0
- package/swagger/prod/LIC.json +123 -0
- package/swagger/prod/MSG.json +6239 -0
- package/swagger/prod/NEWS.json +295 -0
- package/swagger/prod/PA.json +5123 -0
- package/swagger/prod/PMP.json +2978 -0
- package/swagger/prod/PROXY.json +250 -0
- package/swagger/prod/REPORT.json +3729 -0
- package/swagger/prod/SC.json +3771 -0
- package/swagger/prod/SLA.json +2201 -0
- package/swagger/prod/TSTG.json +4220 -0
- package/swagger/prod/UI.json +3879 -0
- package/swagger/prod/WH.json +16730 -0
- package/swagger/prod/WORK.json +35994 -0
- package/swagger/prod/WSP.json +1468 -0
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.0.1",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "API for remote calling 3rd party services.",
|
|
5
|
+
"description": "Proxy service offers methods for calling 3rd party services that assumes authorization via tokens that cannot be safety saved in frontend applications.",
|
|
6
|
+
"contact": {
|
|
7
|
+
"name": "SmartService Backend Team",
|
|
8
|
+
"email": "fmbackend@melston.ru"
|
|
9
|
+
},
|
|
10
|
+
"version": "v1.0.0.0"
|
|
11
|
+
},
|
|
12
|
+
"servers": [
|
|
13
|
+
{
|
|
14
|
+
"url": "/PROXY"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"paths": {
|
|
18
|
+
"/Bypass": {
|
|
19
|
+
"post": {
|
|
20
|
+
"tags": [
|
|
21
|
+
"Bypass"
|
|
22
|
+
],
|
|
23
|
+
"summary": "Прокидывает запрос на заданный в теле адрес, применяя к нему дополнительные заголовки по имени домена",
|
|
24
|
+
"description": "## Пример запроса:\r\n`POST /Bypass`\r\n \r\n```json\r\n{\r\n \"url\": \"https://api.example.com/v1/items\",\r\n \"method\": \"POST\",\r\n \"headers\": [\r\n { \"key\": \"Content-Type\", \"value\": \"application/json\" },\r\n { \"key\": \"Authorization\", \"value\": \"Bearer <token>\" }\r\n ],\r\n \"body\": \"eyJuYW1lIjoiZGVtbyJ9\"\r\n}\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"headers\": {\r\n \"content-type\": [\"application/json; charset=utf-8\"]\r\n },\r\n \"content\": \"eyJpZCI6MTIzfQ==\",\r\n \"statusCode\": 200\r\n}\r\n```\r\nПоле `content` содержит тело ответа, закодированное в Base64.\r\n \r\n## Негативные сценарии:\r\n- 400 BadRequest: некорректные входные данные, неподдерживаемый метод, отсутствует Content-Type при передаче тела запроса или ошибка выполнения внешнего запроса.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.",
|
|
25
|
+
"parameters": [
|
|
26
|
+
{
|
|
27
|
+
"name": "X-Application-ID",
|
|
28
|
+
"in": "header",
|
|
29
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
30
|
+
"schema": {
|
|
31
|
+
"enum": [
|
|
32
|
+
1,
|
|
33
|
+
2,
|
|
34
|
+
3,
|
|
35
|
+
4,
|
|
36
|
+
5,
|
|
37
|
+
6
|
|
38
|
+
],
|
|
39
|
+
"type": "integer",
|
|
40
|
+
"format": "int32",
|
|
41
|
+
"default": 3,
|
|
42
|
+
"x-enumNames": [
|
|
43
|
+
"EngineerMobile",
|
|
44
|
+
"CustomerMobile",
|
|
45
|
+
"MainWeb",
|
|
46
|
+
"AdminWeb",
|
|
47
|
+
"Api",
|
|
48
|
+
"PlateWeb"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"requestBody": {
|
|
54
|
+
"description": "Данные проксируемого HTTP-запроса.",
|
|
55
|
+
"content": {
|
|
56
|
+
"application/json-patch+json": {
|
|
57
|
+
"schema": {
|
|
58
|
+
"$ref": "#/components/schemas/PostData"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"application/json": {
|
|
62
|
+
"schema": {
|
|
63
|
+
"$ref": "#/components/schemas/PostData"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"text/json": {
|
|
67
|
+
"schema": {
|
|
68
|
+
"$ref": "#/components/schemas/PostData"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"application/*+json": {
|
|
72
|
+
"schema": {
|
|
73
|
+
"$ref": "#/components/schemas/PostData"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"responses": {
|
|
79
|
+
"200": {
|
|
80
|
+
"description": "Ответ внешнего сервиса успешно получен и возвращён клиенту.",
|
|
81
|
+
"content": {
|
|
82
|
+
"text/plain": {
|
|
83
|
+
"schema": {
|
|
84
|
+
"$ref": "#/components/schemas/PostResult"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"application/json": {
|
|
88
|
+
"schema": {
|
|
89
|
+
"$ref": "#/components/schemas/PostResult"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"text/json": {
|
|
93
|
+
"schema": {
|
|
94
|
+
"$ref": "#/components/schemas/PostResult"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"400": {
|
|
100
|
+
"description": "Некорректные входные данные или ошибка выполнения внешнего запроса."
|
|
101
|
+
},
|
|
102
|
+
"401": {
|
|
103
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
104
|
+
},
|
|
105
|
+
"403": {
|
|
106
|
+
"description": "Forbidden"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"security": [
|
|
110
|
+
{
|
|
111
|
+
"Bearer": [ ]
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"/NavigateTo/{appCode}": {
|
|
117
|
+
"get": {
|
|
118
|
+
"tags": [
|
|
119
|
+
"NavigateTo"
|
|
120
|
+
],
|
|
121
|
+
"summary": "Возвращает ссылку на указанное приложение или расширение с одноразовым токеном для авторизации",
|
|
122
|
+
"description": "## Пример запроса:\r\n`GET /NavigateTo/MainWeb?deepLink=/tasks/123`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"url\": \"https://app.hubex.ru/tenant-name/tasks/123?oneTimeLoginToken=abc123&tenantID=1&tenantUrlName=tenant-name\"\r\n}\r\n```\r\n \r\n## Негативные сценарии:\r\n- 400 BadRequest: указан неизвестный `appCode` или некорректный `deepLink`.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.",
|
|
123
|
+
"parameters": [
|
|
124
|
+
{
|
|
125
|
+
"name": "appCode",
|
|
126
|
+
"in": "path",
|
|
127
|
+
"description": "Код приложения HubEx: MainWeb, AdminApp или идентификатор пакета в формате packageID:version.",
|
|
128
|
+
"required": true,
|
|
129
|
+
"schema": {
|
|
130
|
+
"type": "string"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"name": "deepLink",
|
|
135
|
+
"in": "query",
|
|
136
|
+
"description": "Относительная ссылка для перехода в приложении, добавляется к базовому URL.",
|
|
137
|
+
"schema": {
|
|
138
|
+
"type": "string"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "X-Application-ID",
|
|
143
|
+
"in": "header",
|
|
144
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
145
|
+
"schema": {
|
|
146
|
+
"enum": [
|
|
147
|
+
1,
|
|
148
|
+
2,
|
|
149
|
+
3,
|
|
150
|
+
4,
|
|
151
|
+
5,
|
|
152
|
+
6
|
|
153
|
+
],
|
|
154
|
+
"type": "integer",
|
|
155
|
+
"format": "int32",
|
|
156
|
+
"default": 3,
|
|
157
|
+
"x-enumNames": [
|
|
158
|
+
"EngineerMobile",
|
|
159
|
+
"CustomerMobile",
|
|
160
|
+
"MainWeb",
|
|
161
|
+
"AdminWeb",
|
|
162
|
+
"Api",
|
|
163
|
+
"PlateWeb"
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
],
|
|
168
|
+
"responses": {
|
|
169
|
+
"200": {
|
|
170
|
+
"description": "Ссылка на целевое приложение с одноразовым токеном авторизации.",
|
|
171
|
+
"content": {
|
|
172
|
+
"text/plain": {
|
|
173
|
+
"schema": {
|
|
174
|
+
"$ref": "#/components/schemas/GetResult"
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
"application/json": {
|
|
178
|
+
"schema": {
|
|
179
|
+
"$ref": "#/components/schemas/GetResult"
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
"text/json": {
|
|
183
|
+
"schema": {
|
|
184
|
+
"$ref": "#/components/schemas/GetResult"
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"400": {
|
|
190
|
+
"description": "Неизвестный код приложения или некорректная ссылка для перехода."
|
|
191
|
+
},
|
|
192
|
+
"401": {
|
|
193
|
+
"description": "Отсутствует или некорректен Bearer-токен."
|
|
194
|
+
},
|
|
195
|
+
"403": {
|
|
196
|
+
"description": "Forbidden"
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"security": [
|
|
200
|
+
{
|
|
201
|
+
"Bearer": [ ]
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"/TaskTemplates/{codeDynamicPart}": {
|
|
207
|
+
"get": {
|
|
208
|
+
"tags": [
|
|
209
|
+
"TaskTemplates"
|
|
210
|
+
],
|
|
211
|
+
"summary": "Перенаправляет запрос на электронный паспорт оборудования",
|
|
212
|
+
"description": "## Пример запроса:\r\n`GET /TaskTemplates/abc123`\r\n \r\nЗаголовки:\r\n- Referer: https://example.com/tasktemplates/abc123\r\n \r\n## Пример успешного ответа (307):\r\nHTTP 307 Temporary Redirect\r\n \r\nЗаголовок ответа:\r\n- Location: https://plate.hubex.ru/assets/<taskTemplateID>\r\n \r\n## Негативные сценарии:\r\n- 400 BadRequest: не указана динамическая часть кода, заголовок Referer отсутствует или не совпадает с `codeDynamicPart`.\r\n- 500 InternalServerError: либо не настроен URL сервиса паспортов.",
|
|
213
|
+
"parameters": [
|
|
214
|
+
{
|
|
215
|
+
"name": "codeDynamicPart",
|
|
216
|
+
"in": "path",
|
|
217
|
+
"description": "Динамическая часть кода шаблона заявки.",
|
|
218
|
+
"required": true,
|
|
219
|
+
"schema": {
|
|
220
|
+
"type": "string"
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"name": "referer",
|
|
225
|
+
"in": "header",
|
|
226
|
+
"description": "URL исходного запроса, передаётся в заголовке Referer.",
|
|
227
|
+
"schema": {
|
|
228
|
+
"type": "string"
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"name": "X-Application-ID",
|
|
233
|
+
"in": "header",
|
|
234
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
235
|
+
"schema": {
|
|
236
|
+
"enum": [
|
|
237
|
+
1,
|
|
238
|
+
2,
|
|
239
|
+
3,
|
|
240
|
+
4,
|
|
241
|
+
5,
|
|
242
|
+
6
|
|
243
|
+
],
|
|
244
|
+
"type": "integer",
|
|
245
|
+
"format": "int32",
|
|
246
|
+
"default": 3,
|
|
247
|
+
"x-enumNames": [
|
|
248
|
+
"EngineerMobile",
|
|
249
|
+
"CustomerMobile",
|
|
250
|
+
"MainWeb",
|
|
251
|
+
"AdminWeb",
|
|
252
|
+
"Api",
|
|
253
|
+
"PlateWeb"
|
|
254
|
+
]
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
],
|
|
258
|
+
"responses": {
|
|
259
|
+
"307": {
|
|
260
|
+
"description": "Редирект на URL электронного паспорта оборудования."
|
|
261
|
+
},
|
|
262
|
+
"400": {
|
|
263
|
+
"description": "Некорректные входные данные."
|
|
264
|
+
},
|
|
265
|
+
"500": {
|
|
266
|
+
"description": "Ошибка конфигурации сервиса паспортов."
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
"components": {
|
|
273
|
+
"schemas": {
|
|
274
|
+
"GetResult": {
|
|
275
|
+
"type": "object",
|
|
276
|
+
"properties": {
|
|
277
|
+
"url": {
|
|
278
|
+
"type": "string",
|
|
279
|
+
"description": "Полная ссылка для перехода в целевое приложение с параметрами авторизации",
|
|
280
|
+
"nullable": true,
|
|
281
|
+
"example": "https://app.hubex.ru/tenant-name/tasks/123?oneTimeLoginToken=abc123&tenantID=1&tenantUrlName=tenant-name"
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
"additionalProperties": false,
|
|
285
|
+
"description": "Результат формирования ссылки для перехода в приложение"
|
|
286
|
+
},
|
|
287
|
+
"KeyValuePairOfStringAndString": {
|
|
288
|
+
"type": "object",
|
|
289
|
+
"properties": {
|
|
290
|
+
"key": {
|
|
291
|
+
"type": "string",
|
|
292
|
+
"nullable": true
|
|
293
|
+
},
|
|
294
|
+
"value": {
|
|
295
|
+
"type": "string",
|
|
296
|
+
"nullable": true
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
"additionalProperties": false
|
|
300
|
+
},
|
|
301
|
+
"PostData": {
|
|
302
|
+
"required": [
|
|
303
|
+
"method",
|
|
304
|
+
"url"
|
|
305
|
+
],
|
|
306
|
+
"type": "object",
|
|
307
|
+
"properties": {
|
|
308
|
+
"url": {
|
|
309
|
+
"minLength": 1,
|
|
310
|
+
"type": "string",
|
|
311
|
+
"description": "Адрес, на который будет отправлен запрос",
|
|
312
|
+
"example": "https://api.example.com/v1/items"
|
|
313
|
+
},
|
|
314
|
+
"method": {
|
|
315
|
+
"minLength": 1,
|
|
316
|
+
"type": "string",
|
|
317
|
+
"description": "HTTP-метод отправляемого запроса",
|
|
318
|
+
"example": "POST"
|
|
319
|
+
},
|
|
320
|
+
"headers": {
|
|
321
|
+
"type": "array",
|
|
322
|
+
"items": {
|
|
323
|
+
"$ref": "#/components/schemas/KeyValuePairOfStringAndString"
|
|
324
|
+
},
|
|
325
|
+
"description": "Передаваемые заголовки запроса",
|
|
326
|
+
"nullable": true,
|
|
327
|
+
"example": [
|
|
328
|
+
{
|
|
329
|
+
"key": "Content-Type",
|
|
330
|
+
"value": "application/json"
|
|
331
|
+
}
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
"body": {
|
|
335
|
+
"type": "string",
|
|
336
|
+
"description": "Тело запроса, закодированное в Base64",
|
|
337
|
+
"nullable": true,
|
|
338
|
+
"example": "eyJuYW1lIjoiZGVtbyJ9"
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"additionalProperties": false,
|
|
342
|
+
"description": "Данные проксируемого HTTP-запроса"
|
|
343
|
+
},
|
|
344
|
+
"PostResult": {
|
|
345
|
+
"type": "object",
|
|
346
|
+
"properties": {
|
|
347
|
+
"headers": {
|
|
348
|
+
"type": "object",
|
|
349
|
+
"additionalProperties": {
|
|
350
|
+
"type": "array",
|
|
351
|
+
"items": {
|
|
352
|
+
"type": "string"
|
|
353
|
+
},
|
|
354
|
+
"nullable": true
|
|
355
|
+
},
|
|
356
|
+
"description": "Заголовки ответа внешнего сервиса",
|
|
357
|
+
"nullable": true,
|
|
358
|
+
"example": {
|
|
359
|
+
"content-type": [
|
|
360
|
+
"application/json; charset=utf-8"
|
|
361
|
+
]
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
"content": {
|
|
365
|
+
"type": "string",
|
|
366
|
+
"description": "Тело ответа, закодированное в Base64",
|
|
367
|
+
"nullable": true,
|
|
368
|
+
"example": "eyJpZCI6MTIzfQ=="
|
|
369
|
+
},
|
|
370
|
+
"statusCode": {
|
|
371
|
+
"type": "integer",
|
|
372
|
+
"description": "HTTP-статус ответа внешнего сервиса",
|
|
373
|
+
"format": "int32",
|
|
374
|
+
"example": 200
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
"additionalProperties": false,
|
|
378
|
+
"description": "Результат выполнения проксируемого HTTP-запроса"
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
"securitySchemes": {
|
|
382
|
+
"Bearer": {
|
|
383
|
+
"type": "http",
|
|
384
|
+
"description": "Введите токен для авторизации",
|
|
385
|
+
"scheme": "Bearer",
|
|
386
|
+
"bearerFormat": "JWT"
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
},
|
|
390
|
+
"tags": [
|
|
391
|
+
{
|
|
392
|
+
"name": "Bypass",
|
|
393
|
+
"description": "Контроллер прокидывает запросы через бэк для добавления к ним авторизационных данных и секретов"
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"name": "NavigateTo",
|
|
397
|
+
"description": "Контроллер навигации между приложениями системы"
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"name": "TaskTemplates",
|
|
401
|
+
"description": "Контроллер обработки ссылок и редиректа клиента на сервис FDL"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"name": "Bypass",
|
|
405
|
+
"description": "Контроллер прокидывает запросы через бэк для добавления к ним авторизационных данных и секретов"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"name": "NavigateTo",
|
|
409
|
+
"description": "Контроллер навигации между приложениями системы"
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
"name": "TaskTemplates",
|
|
413
|
+
"description": "Контроллер обработки ссылок и редиректа клиента на сервис FDL"
|
|
414
|
+
}
|
|
415
|
+
]
|
|
416
|
+
}
|