@ytsaurus/ui 1.16.1 → 1.17.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.
Files changed (371) hide show
  1. package/README.md +6 -11
  2. package/build/cjs/@types/core.d.ts +7 -7
  3. package/build/cjs/server/components/layout-config.js +3 -3
  4. package/build/cjs/server/components/layout-config.js.map +1 -1
  5. package/build/cjs/server/components/requestsSetup.js +13 -5
  6. package/build/cjs/server/components/requestsSetup.js.map +1 -1
  7. package/build/cjs/server/components/settings.d.ts +10 -5
  8. package/build/cjs/server/components/settings.js +24 -23
  9. package/build/cjs/server/components/settings.js.map +1 -1
  10. package/build/cjs/server/components/table.d.ts +3 -3
  11. package/build/cjs/server/components/table.js +4 -4
  12. package/build/cjs/server/components/table.js.map +1 -1
  13. package/build/cjs/server/components/yt-auth.d.ts +0 -2
  14. package/build/cjs/server/components/yt-auth.js +5 -14
  15. package/build/cjs/server/components/yt-auth.js.map +1 -1
  16. package/build/cjs/server/configs/common.js +5 -13
  17. package/build/cjs/server/configs/common.js.map +1 -1
  18. package/build/cjs/server/configs/local.js +0 -5
  19. package/build/cjs/server/configs/local.js.map +1 -1
  20. package/build/cjs/server/controllers/chyt-api.js +1 -1
  21. package/build/cjs/server/controllers/chyt-api.js.map +1 -1
  22. package/build/cjs/server/controllers/cluster-info.js +2 -2
  23. package/build/cjs/server/controllers/cluster-info.js.map +1 -1
  24. package/build/cjs/server/controllers/cluster-params.js +1 -1
  25. package/build/cjs/server/controllers/cluster-params.js.map +1 -1
  26. package/build/cjs/server/controllers/clusters.d.ts +1 -0
  27. package/build/cjs/server/controllers/clusters.js +24 -1
  28. package/build/cjs/server/controllers/clusters.js.map +1 -1
  29. package/build/cjs/server/controllers/home.js +10 -6
  30. package/build/cjs/server/controllers/home.js.map +1 -1
  31. package/build/cjs/server/controllers/login.js +18 -5
  32. package/build/cjs/server/controllers/login.js.map +1 -1
  33. package/build/cjs/server/controllers/odin-proxy-api.js +1 -1
  34. package/build/cjs/server/controllers/odin-proxy-api.js.map +1 -1
  35. package/build/cjs/server/controllers/scheduling-pools.js +2 -2
  36. package/build/cjs/server/controllers/scheduling-pools.js.map +1 -1
  37. package/build/cjs/server/controllers/settings.js +10 -10
  38. package/build/cjs/server/controllers/settings.js.map +1 -1
  39. package/build/cjs/server/controllers/table-column-preset.js +4 -3
  40. package/build/cjs/server/controllers/table-column-preset.js.map +1 -1
  41. package/build/cjs/server/controllers/yt-api.js +1 -1
  42. package/build/cjs/server/controllers/yt-api.js.map +1 -1
  43. package/build/cjs/server/controllers/yt-proxy-api.js +2 -2
  44. package/build/cjs/server/controllers/yt-proxy-api.js.map +1 -1
  45. package/build/cjs/server/index.js +11 -8
  46. package/build/cjs/server/index.js.map +1 -1
  47. package/build/cjs/server/middlewares/authorization.d.ts +1 -1
  48. package/build/cjs/server/middlewares/authorization.js +3 -2
  49. package/build/cjs/server/middlewares/authorization.js.map +1 -1
  50. package/build/cjs/server/middlewares/yt-auth.js +3 -2
  51. package/build/cjs/server/middlewares/yt-auth.js.map +1 -1
  52. package/build/cjs/server/routes.js +26 -25
  53. package/build/cjs/server/routes.js.map +1 -1
  54. package/build/cjs/server/utils/index.d.ts +1 -1
  55. package/build/cjs/server/utils/index.js +12 -4
  56. package/build/cjs/server/utils/index.js.map +1 -1
  57. package/build/cjs/shared/yt-types.d.ts +1 -0
  58. package/build/cjs/ui/common/utils/settings-remote-provider.d.ts +5 -5
  59. package/build/cjs/ui/common/utils/settings-remote-provider.js +42 -16
  60. package/build/cjs/ui/common/utils/settings-remote-provider.js.map +1 -1
  61. package/build/cjs/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
  62. package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
  63. package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
  64. package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
  65. package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js +7 -4
  66. package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
  67. package/build/cjs/ui/config/ui-settings.d.ts +1 -0
  68. package/build/cjs/ui/config/ui-settings.js +3 -2
  69. package/build/cjs/ui/config/ui-settings.js.map +1 -1
  70. package/build/cjs/ui/constants/index.d.ts +7 -0
  71. package/build/cjs/ui/constants/index.js +3 -1
  72. package/build/cjs/ui/constants/index.js.map +1 -1
  73. package/build/cjs/ui/containers/App/App.js +4 -3
  74. package/build/cjs/ui/containers/App/App.js.map +1 -1
  75. package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
  76. package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
  77. package/build/cjs/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
  78. package/build/cjs/ui/containers/ClusterPage/ClusterPage.js +3 -1
  79. package/build/cjs/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
  80. package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
  81. package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
  82. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
  83. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js +11 -3
  84. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
  85. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
  86. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
  87. package/build/cjs/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
  88. package/build/cjs/ui/entries/main.js +4 -1
  89. package/build/cjs/ui/entries/main.js.map +1 -1
  90. package/build/cjs/ui/pages/operations/selectors.d.ts +5 -0
  91. package/build/cjs/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
  92. package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
  93. package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
  94. package/build/cjs/ui/pages/system/Chunks/Chunks.d.ts +1 -1
  95. package/build/cjs/ui/store/actions/cluster-params.d.ts +1 -0
  96. package/build/cjs/ui/store/actions/cluster-params.js +13 -0
  97. package/build/cjs/ui/store/actions/cluster-params.js.map +1 -1
  98. package/build/cjs/ui/store/actions/clusters-menu.d.ts +1 -0
  99. package/build/cjs/ui/store/actions/clusters-menu.js +22 -2
  100. package/build/cjs/ui/store/actions/clusters-menu.js.map +1 -1
  101. package/build/cjs/ui/store/actions/global/index.d.ts +3 -1
  102. package/build/cjs/ui/store/actions/global/index.js +19 -4
  103. package/build/cjs/ui/store/actions/global/index.js.map +1 -1
  104. package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
  105. package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
  106. package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
  107. package/build/cjs/ui/store/actions/navigation/content/table/table.js +2 -1
  108. package/build/cjs/ui/store/actions/navigation/content/table/table.js.map +1 -1
  109. package/build/cjs/ui/store/actions/settings/index.js +25 -19
  110. package/build/cjs/ui/store/actions/settings/index.js.map +1 -1
  111. package/build/cjs/ui/store/reducers/accounts/usage/index.d.ts +1 -1
  112. package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
  113. package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js +8 -0
  114. package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
  115. package/build/cjs/ui/store/reducers/index.d.ts +5 -0
  116. package/build/cjs/ui/store/reducers/index.js.map +1 -1
  117. package/build/cjs/ui/store/reducers/settings.js +1 -1
  118. package/build/cjs/ui/store/reducers/settings.js.map +1 -1
  119. package/build/cjs/ui/store/selectors/accounts/account-usage.d.ts +40 -0
  120. package/build/cjs/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
  121. package/build/cjs/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
  122. package/build/cjs/ui/store/selectors/chyt/index.d.ts +35 -0
  123. package/build/cjs/ui/store/selectors/components/node/memory.d.ts +35 -0
  124. package/build/cjs/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
  125. package/build/cjs/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
  126. package/build/cjs/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
  127. package/build/cjs/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
  128. package/build/cjs/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
  129. package/build/cjs/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
  130. package/build/cjs/ui/store/selectors/global/index.d.ts +912 -0
  131. package/build/cjs/ui/store/selectors/global/index.js +10 -1
  132. package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
  133. package/build/cjs/ui/store/selectors/global/supported-features.d.ts +30 -0
  134. package/build/cjs/ui/store/selectors/modals/errors.d.ts +5 -0
  135. package/build/cjs/ui/store/selectors/navigation/content/document.d.ts +5 -0
  136. package/build/cjs/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
  137. package/build/cjs/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
  138. package/build/cjs/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
  139. package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +35 -0
  140. package/build/cjs/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
  141. package/build/cjs/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
  142. package/build/cjs/ui/store/selectors/navigation/navigation.d.ts +10 -0
  143. package/build/cjs/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
  144. package/build/cjs/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
  145. package/build/cjs/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
  146. package/build/cjs/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
  147. package/build/cjs/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
  148. package/build/cjs/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
  149. package/build/cjs/ui/store/selectors/operations/index.d.ts +60 -0
  150. package/build/cjs/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
  151. package/build/cjs/ui/store/selectors/operations/operation.d.ts +60 -0
  152. package/build/cjs/ui/store/selectors/operations/operations-list.d.ts +15 -0
  153. package/build/cjs/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
  154. package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
  155. package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
  156. package/build/cjs/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
  157. package/build/cjs/ui/store/selectors/scheduling/index.d.ts +5 -0
  158. package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
  159. package/build/cjs/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
  160. package/build/cjs/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
  161. package/build/cjs/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
  162. package/build/cjs/ui/store/selectors/thor/support.d.ts +25 -0
  163. package/build/esm/@types/core.d.ts +7 -7
  164. package/build/esm/server/components/layout-config.js +4 -3
  165. package/build/esm/server/components/layout-config.js.map +1 -1
  166. package/build/esm/server/components/requestsSetup.js +12 -5
  167. package/build/esm/server/components/requestsSetup.js.map +1 -1
  168. package/build/esm/server/components/settings.d.ts +10 -5
  169. package/build/esm/server/components/settings.js +33 -22
  170. package/build/esm/server/components/settings.js.map +1 -1
  171. package/build/esm/server/components/table.d.ts +3 -3
  172. package/build/esm/server/components/table.js +10 -10
  173. package/build/esm/server/components/table.js.map +1 -1
  174. package/build/esm/server/components/yt-auth.d.ts +0 -2
  175. package/build/esm/server/components/yt-auth.js +6 -11
  176. package/build/esm/server/components/yt-auth.js.map +1 -1
  177. package/build/esm/server/configs/common.js +4 -14
  178. package/build/esm/server/configs/common.js.map +1 -1
  179. package/build/esm/server/configs/local.js +0 -5
  180. package/build/esm/server/configs/local.js.map +1 -1
  181. package/build/esm/server/controllers/chyt-api.js +1 -1
  182. package/build/esm/server/controllers/chyt-api.js.map +1 -1
  183. package/build/esm/server/controllers/cluster-info.js +3 -3
  184. package/build/esm/server/controllers/cluster-info.js.map +1 -1
  185. package/build/esm/server/controllers/cluster-params.js +1 -1
  186. package/build/esm/server/controllers/cluster-params.js.map +1 -1
  187. package/build/esm/server/controllers/clusters.d.ts +1 -0
  188. package/build/esm/server/controllers/clusters.js +23 -0
  189. package/build/esm/server/controllers/clusters.js.map +1 -1
  190. package/build/esm/server/controllers/home.js +32 -28
  191. package/build/esm/server/controllers/home.js.map +1 -1
  192. package/build/esm/server/controllers/login.js +35 -21
  193. package/build/esm/server/controllers/login.js.map +1 -1
  194. package/build/esm/server/controllers/odin-proxy-api.js +1 -1
  195. package/build/esm/server/controllers/odin-proxy-api.js.map +1 -1
  196. package/build/esm/server/controllers/scheduling-pools.js +3 -3
  197. package/build/esm/server/controllers/scheduling-pools.js.map +1 -1
  198. package/build/esm/server/controllers/settings.js +26 -15
  199. package/build/esm/server/controllers/settings.js.map +1 -1
  200. package/build/esm/server/controllers/table-column-preset.js +15 -14
  201. package/build/esm/server/controllers/table-column-preset.js.map +1 -1
  202. package/build/esm/server/controllers/yt-api.js +1 -1
  203. package/build/esm/server/controllers/yt-api.js.map +1 -1
  204. package/build/esm/server/controllers/yt-proxy-api.js +3 -3
  205. package/build/esm/server/controllers/yt-proxy-api.js.map +1 -1
  206. package/build/esm/server/index.js +12 -8
  207. package/build/esm/server/index.js.map +1 -1
  208. package/build/esm/server/middlewares/authorization.d.ts +1 -1
  209. package/build/esm/server/middlewares/authorization.js +21 -16
  210. package/build/esm/server/middlewares/authorization.js.map +1 -1
  211. package/build/esm/server/middlewares/yt-auth.js +8 -7
  212. package/build/esm/server/middlewares/yt-auth.js.map +1 -1
  213. package/build/esm/server/routes.js +29 -26
  214. package/build/esm/server/routes.js.map +1 -1
  215. package/build/esm/server/utils/index.d.ts +1 -1
  216. package/build/esm/server/utils/index.js +12 -6
  217. package/build/esm/server/utils/index.js.map +1 -1
  218. package/build/esm/shared/yt-types.d.ts +1 -0
  219. package/build/esm/ui/common/utils/settings-remote-provider.d.ts +5 -5
  220. package/build/esm/ui/common/utils/settings-remote-provider.js +42 -16
  221. package/build/esm/ui/common/utils/settings-remote-provider.js.map +1 -1
  222. package/build/esm/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
  223. package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
  224. package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
  225. package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
  226. package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js +8 -5
  227. package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
  228. package/build/esm/ui/config/ui-settings.d.ts +1 -0
  229. package/build/esm/ui/config/ui-settings.js +2 -1
  230. package/build/esm/ui/config/ui-settings.js.map +1 -1
  231. package/build/esm/ui/constants/index.d.ts +7 -0
  232. package/build/esm/ui/constants/index.js +1 -0
  233. package/build/esm/ui/constants/index.js.map +1 -1
  234. package/build/esm/ui/containers/App/App.js +4 -3
  235. package/build/esm/ui/containers/App/App.js.map +1 -1
  236. package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
  237. package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
  238. package/build/esm/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
  239. package/build/esm/ui/containers/ClusterPage/ClusterPage.js +4 -2
  240. package/build/esm/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
  241. package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
  242. package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
  243. package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.scss +6 -0
  244. package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
  245. package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js +12 -4
  246. package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
  247. package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
  248. package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
  249. package/build/esm/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
  250. package/build/esm/ui/entries/main.js +4 -1
  251. package/build/esm/ui/entries/main.js.map +1 -1
  252. package/build/esm/ui/pages/operations/selectors.d.ts +5 -0
  253. package/build/esm/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
  254. package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
  255. package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
  256. package/build/esm/ui/pages/system/Chunks/Chunks.d.ts +1 -1
  257. package/build/esm/ui/store/actions/cluster-params.d.ts +1 -0
  258. package/build/esm/ui/store/actions/cluster-params.js +12 -0
  259. package/build/esm/ui/store/actions/cluster-params.js.map +1 -1
  260. package/build/esm/ui/store/actions/clusters-menu.d.ts +1 -0
  261. package/build/esm/ui/store/actions/clusters-menu.js +22 -3
  262. package/build/esm/ui/store/actions/clusters-menu.js.map +1 -1
  263. package/build/esm/ui/store/actions/global/index.d.ts +3 -1
  264. package/build/esm/ui/store/actions/global/index.js +19 -4
  265. package/build/esm/ui/store/actions/global/index.js.map +1 -1
  266. package/build/esm/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
  267. package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
  268. package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
  269. package/build/esm/ui/store/actions/navigation/content/table/table.js +2 -1
  270. package/build/esm/ui/store/actions/navigation/content/table/table.js.map +1 -1
  271. package/build/esm/ui/store/actions/settings/index.js +25 -19
  272. package/build/esm/ui/store/actions/settings/index.js.map +1 -1
  273. package/build/esm/ui/store/reducers/accounts/usage/index.d.ts +1 -1
  274. package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
  275. package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js +9 -1
  276. package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
  277. package/build/esm/ui/store/reducers/index.d.ts +5 -0
  278. package/build/esm/ui/store/reducers/index.js.map +1 -1
  279. package/build/esm/ui/store/reducers/settings.js +1 -1
  280. package/build/esm/ui/store/reducers/settings.js.map +1 -1
  281. package/build/esm/ui/store/selectors/accounts/account-usage.d.ts +40 -0
  282. package/build/esm/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
  283. package/build/esm/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
  284. package/build/esm/ui/store/selectors/chyt/index.d.ts +35 -0
  285. package/build/esm/ui/store/selectors/components/node/memory.d.ts +35 -0
  286. package/build/esm/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
  287. package/build/esm/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
  288. package/build/esm/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
  289. package/build/esm/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
  290. package/build/esm/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
  291. package/build/esm/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
  292. package/build/esm/ui/store/selectors/global/index.d.ts +912 -0
  293. package/build/esm/ui/store/selectors/global/index.js +10 -1
  294. package/build/esm/ui/store/selectors/global/index.js.map +1 -1
  295. package/build/esm/ui/store/selectors/global/supported-features.d.ts +30 -0
  296. package/build/esm/ui/store/selectors/modals/errors.d.ts +5 -0
  297. package/build/esm/ui/store/selectors/navigation/content/document.d.ts +5 -0
  298. package/build/esm/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
  299. package/build/esm/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
  300. package/build/esm/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
  301. package/build/esm/ui/store/selectors/navigation/content/table.d.ts +35 -0
  302. package/build/esm/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
  303. package/build/esm/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
  304. package/build/esm/ui/store/selectors/navigation/navigation.d.ts +10 -0
  305. package/build/esm/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
  306. package/build/esm/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
  307. package/build/esm/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
  308. package/build/esm/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
  309. package/build/esm/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
  310. package/build/esm/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
  311. package/build/esm/ui/store/selectors/operations/index.d.ts +60 -0
  312. package/build/esm/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
  313. package/build/esm/ui/store/selectors/operations/operation.d.ts +60 -0
  314. package/build/esm/ui/store/selectors/operations/operations-list.d.ts +15 -0
  315. package/build/esm/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
  316. package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
  317. package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
  318. package/build/esm/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
  319. package/build/esm/ui/store/selectors/scheduling/index.d.ts +5 -0
  320. package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
  321. package/build/esm/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
  322. package/build/esm/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
  323. package/build/esm/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
  324. package/build/esm/ui/store/selectors/thor/support.d.ts +25 -0
  325. package/dist/public/build/assets-manifest.json +12 -12
  326. package/dist/public/build/css/main.8a4cd357.css +2 -0
  327. package/dist/public/build/css/main.8a4cd357.css.map +1 -0
  328. package/dist/public/build/js/{861.9703a31c.chunk.js → 861.a0939319.chunk.js} +2 -2
  329. package/dist/public/build/js/861.a0939319.chunk.js.map +1 -0
  330. package/dist/public/build/js/main.c39cff0d.js +3 -0
  331. package/dist/public/build/js/{main.5b132a95.js.map → main.c39cff0d.js.map} +1 -1
  332. package/dist/public/build/js/runtime.0ac0f2e8.js +2 -0
  333. package/dist/public/build/js/{runtime.a87a1f88.js.map → runtime.0ac0f2e8.js.map} +1 -1
  334. package/dist/public/build/manifest.json +8 -8
  335. package/dist/server/components/layout-config.js +3 -3
  336. package/dist/server/components/requestsSetup.js +13 -5
  337. package/dist/server/components/settings.d.ts +10 -5
  338. package/dist/server/components/settings.js +24 -23
  339. package/dist/server/components/table.d.ts +3 -3
  340. package/dist/server/components/table.js +4 -4
  341. package/dist/server/components/yt-auth.d.ts +0 -2
  342. package/dist/server/components/yt-auth.js +5 -14
  343. package/dist/server/configs/common.js +5 -13
  344. package/dist/server/configs/local.js +0 -5
  345. package/dist/server/controllers/chyt-api.js +1 -1
  346. package/dist/server/controllers/cluster-info.js +2 -2
  347. package/dist/server/controllers/cluster-params.js +1 -1
  348. package/dist/server/controllers/clusters.d.ts +1 -0
  349. package/dist/server/controllers/clusters.js +24 -1
  350. package/dist/server/controllers/home.js +10 -6
  351. package/dist/server/controllers/login.js +18 -5
  352. package/dist/server/controllers/odin-proxy-api.js +1 -1
  353. package/dist/server/controllers/scheduling-pools.js +2 -2
  354. package/dist/server/controllers/settings.js +10 -10
  355. package/dist/server/controllers/table-column-preset.js +4 -3
  356. package/dist/server/controllers/yt-api.js +1 -1
  357. package/dist/server/controllers/yt-proxy-api.js +2 -2
  358. package/dist/server/index.js +11 -8
  359. package/dist/server/middlewares/authorization.d.ts +1 -1
  360. package/dist/server/middlewares/authorization.js +3 -2
  361. package/dist/server/middlewares/yt-auth.js +3 -2
  362. package/dist/server/routes.js +26 -25
  363. package/dist/server/utils/index.d.ts +1 -1
  364. package/dist/server/utils/index.js +12 -4
  365. package/package.json +2 -2
  366. package/dist/public/build/css/main.4aa70d7b.css +0 -2
  367. package/dist/public/build/css/main.4aa70d7b.css.map +0 -1
  368. package/dist/public/build/js/861.9703a31c.chunk.js.map +0 -1
  369. package/dist/public/build/js/main.5b132a95.js +0 -3
  370. package/dist/public/build/js/runtime.a87a1f88.js +0 -2
  371. /package/dist/public/build/js/{main.5b132a95.js.LICENSE.txt → main.c39cff0d.js.LICENSE.txt} +0 -0
@@ -35,6 +35,7 @@ const ServerFactory_1 = __importStar(require("../ServerFactory"));
35
35
  const utils_2 = require("../utils");
36
36
  const default_settings_1 = require("../utils/default-settings");
37
37
  const constants_1 = require("../../shared/constants");
38
+ const settings_2 = require("../../server/components/settings");
38
39
  function isRootPage(page) {
39
40
  var _a;
40
41
  const rootPages = [
@@ -44,7 +45,7 @@ function isRootPage(page) {
44
45
  return -1 !== rootPages.indexOf(page);
45
46
  }
46
47
  function homeRedirect(req, res) {
47
- const cluster = req.params.cluster;
48
+ const cluster = req.params.ytAuthCluster;
48
49
  const { referrer } = req.query;
49
50
  const url = referrer ? referrer : `/${cluster}`;
50
51
  res.redirect(url);
@@ -52,8 +53,8 @@ function homeRedirect(req, res) {
52
53
  exports.homeRedirect = homeRedirect;
53
54
  async function homeIndex(req, res) {
54
55
  var _a, _b;
55
- const isRoot = isRootPage(req.params.cluster);
56
- const cluster = isRoot ? undefined : req.params.cluster;
56
+ const isRoot = isRootPage(req.params.ytAuthCluster);
57
+ const cluster = isRoot ? undefined : req.params.ytAuthCluster;
57
58
  try {
58
59
  const url = await ServerFactory_1.default.getHomeRedirectedUrl(cluster, req);
59
60
  if (url) {
@@ -87,10 +88,13 @@ async function homeIndex(req, res) {
87
88
  errorMessage: undefined,
88
89
  },
89
90
  };
90
- if (login && useRemoteSettings) {
91
+ const settingsConfig = (0, settings_2.getSettingsConfig)(cluster);
92
+ if (login && useRemoteSettings && settingsConfig.cluster) {
91
93
  try {
92
- await (0, settings_1.create)({ ctx, username: login });
93
- const userSettings = login ? await (0, settings_1.get)({ ctx, username: login }) : {};
94
+ await (0, settings_1.create)({ ctx, username: login, cluster: settingsConfig.cluster });
95
+ const userSettings = login
96
+ ? await (0, settings_1.get)({ ctx, username: login, cluster: settingsConfig.cluster })
97
+ : {};
94
98
  settings.data = Object.assign(Object.assign({}, settings.data), userSettings);
95
99
  }
96
100
  catch (e) {
@@ -13,11 +13,10 @@ const crypto_1 = __importDefault(require("crypto"));
13
13
  // @ts-ignore
14
14
  const javascript_wrapper_1 = __importDefault(require("@ytsaurus/javascript-wrapper"));
15
15
  const cluster_queries_1 = require("../components/cluster-queries");
16
- const yt_auth_1 = require("../components/yt-auth");
17
16
  const yt = (0, javascript_wrapper_1.default)();
18
17
  async function handleLogin(req, res) {
19
18
  try {
20
- const ytAuthCluster = (0, yt_auth_1.getAuthCluster)(req.ctx.config);
19
+ const { ytAuthCluster } = req.params;
21
20
  const { username, password } = JSON.parse(req.body) || {};
22
21
  if (!username || !password) {
23
22
  throw new Error('Username and password must not be empty');
@@ -34,7 +33,18 @@ async function handleLogin(req, res) {
34
33
  responseType: 'stream',
35
34
  })
36
35
  .then(async (response) => {
37
- const pipedSize = await (0, utils_1.pipeAxiosResponse)(req.ctx, res, response, undefined, (headers) => removeSecureFlagIfOriginInsecure(req, headers));
36
+ const pipedSize = await (0, utils_1.pipeAxiosResponse)(req.ctx, res, response, undefined, (headers) => {
37
+ if (headers['set-cookie']) {
38
+ headers['set-cookie'] = headers['set-cookie'].reduce((ret, item) => {
39
+ ret.push(item);
40
+ if (item.startsWith(constants_1.YT_CYPRESS_COOKIE_NAME)) {
41
+ ret.push(item.replace(constants_1.YT_CYPRESS_COOKIE_NAME, `${ytAuthCluster}:${constants_1.YT_CYPRESS_COOKIE_NAME}`));
42
+ }
43
+ return ret;
44
+ }, []);
45
+ }
46
+ return removeSecureFlagIfOriginInsecure(req, headers);
47
+ });
38
48
  if (!pipedSize) {
39
49
  throw new Error(utils_1.UNEXPECTED_PIPE_AXIOS_RESPONSE);
40
50
  }
@@ -57,7 +67,7 @@ function removeSecureFlagIfOriginInsecure(req, headers) {
57
67
  }
58
68
  else {
59
69
  const tmp = lodash_1.default.map(v, (item) => {
60
- if (item.startsWith(constants_1.YT_CYPRESS_COOKIE_NAME)) {
70
+ if (item.includes(constants_1.YT_CYPRESS_COOKIE_NAME)) {
61
71
  return item.replace(/\s*Secure;/, '');
62
72
  }
63
73
  return item;
@@ -69,7 +79,10 @@ function removeSecureFlagIfOriginInsecure(req, headers) {
69
79
  }
70
80
  async function handleChangePassword(req, res) {
71
81
  try {
72
- const ytAuthCluster = (0, yt_auth_1.getAuthCluster)(req.ctx.config);
82
+ const ytAuthCluster = req.params.ytAuthCluster;
83
+ if (!ytAuthCluster) {
84
+ throw new Error('You have to define ytAuthCluster.');
85
+ }
73
86
  const { newPassword, currentPassword } = JSON.parse(req.body) || {};
74
87
  if (!newPassword || !currentPassword) {
75
88
  throw new Error('New and current password must not be empty');
@@ -30,7 +30,7 @@ async function odinProxyApiImpl(req, res) {
30
30
  }
31
31
  const { ctx, query } = req;
32
32
  const search = lodash_1.default.isEmpty(query) ? '' : `?${qs_1.default.stringify(query)}`;
33
- const { action, cluster } = req.params;
33
+ const { action, ytAuthCluster: cluster } = req.params;
34
34
  const allowedActionsUrls = {
35
35
  service_list: `${odinPath}/service_list`,
36
36
  exists: `${odinPath}/${action}/${cluster}`,
@@ -13,11 +13,11 @@ const yt = (0, javascript_wrapper_1.default)();
13
13
  async function getClusterPools(req, res) {
14
14
  try {
15
15
  req.ctx.log('Test', req.params);
16
- const { cluster } = req.params;
16
+ const { ytAuthCluster } = req.params;
17
17
  const { poolTree } = req.query;
18
18
  let cfg;
19
19
  try {
20
- cfg = (0, requestsSetup_1.getUserYTApiSetup)(cluster, req);
20
+ cfg = (0, requestsSetup_1.getUserYTApiSetup)(ytAuthCluster, req);
21
21
  }
22
22
  catch (e) {
23
23
  (0, utils_1.sendAndLogError)(req.ctx, res, 400, e);
@@ -7,36 +7,36 @@ function sendResponse(_req, res, data) {
7
7
  return res.set('content-type', 'application/json').status(200).send(JSON.stringify(data));
8
8
  }
9
9
  function settingsCreate(req, res) {
10
- const { ctx, params: { username }, } = req;
11
- return (0, settings_1.create)({ ctx, username })
10
+ const { ctx, params: { username, ytAuthCluster }, } = req;
11
+ return (0, settings_1.create)({ ctx, username, cluster: ytAuthCluster })
12
12
  .then(sendResponse.bind(null, req, res))
13
13
  .catch(utils_1.sendError.bind(null, res));
14
14
  }
15
15
  exports.settingsCreate = settingsCreate;
16
16
  function settingsGet(req, res) {
17
- const { ctx, params: { username }, } = req;
18
- return (0, settings_1.get)({ ctx, username })
17
+ const { ctx, params: { username, ytAuthCluster }, } = req;
18
+ return (0, settings_1.get)({ ctx, username, cluster: ytAuthCluster })
19
19
  .then(sendResponse.bind(null, req, res))
20
20
  .catch(utils_1.sendError.bind(null, res));
21
21
  }
22
22
  exports.settingsGet = settingsGet;
23
23
  async function settingsGetItem(req, res) {
24
- const { ctx, params: { username, path }, } = req;
25
- return (0, settings_1.getItem)({ ctx, username, path })
24
+ const { ctx, params: { username, path, ytAuthCluster }, } = req;
25
+ return (0, settings_1.getItem)({ ctx, username, path, cluster: ytAuthCluster })
26
26
  .then(sendResponse.bind(null, req, res))
27
27
  .catch(utils_1.sendError.bind(null, res));
28
28
  }
29
29
  exports.settingsGetItem = settingsGetItem;
30
30
  function settingsSetItem(req, res) {
31
- const { ctx, params: { username, path }, body: { value } = {}, } = req;
32
- return (0, settings_1.setItem)({ ctx, username, path, value })
31
+ const { ctx, params: { username, path, ytAuthCluster }, body: { value } = {}, } = req;
32
+ return (0, settings_1.setItem)({ ctx, username, path, value, cluster: ytAuthCluster })
33
33
  .then(sendResponse.bind(null, req, res))
34
34
  .catch(utils_1.sendError.bind(null, res));
35
35
  }
36
36
  exports.settingsSetItem = settingsSetItem;
37
37
  function settingsDeleteItem(req, res) {
38
- const { ctx, params: { username, path }, } = req;
39
- return (0, settings_1.deleteItem)({ ctx, username, path })
38
+ const { ctx, params: { username, path, ytAuthCluster }, } = req;
39
+ return (0, settings_1.deleteItem)({ ctx, username, path, cluster: ytAuthCluster })
40
40
  .then(sendResponse.bind(null, req, res))
41
41
  .catch(utils_1.sendError.bind(null, res));
42
42
  }
@@ -4,10 +4,10 @@ exports.isUserColumnPresetsEnabled = exports.tableColumnPresetSave = exports.tab
4
4
  const table_1 = require("../components/table");
5
5
  const utils_1 = require("../utils");
6
6
  async function tableColumnPresetGet(req, res) {
7
- const { params: { hash }, } = req;
7
+ const { params: { hash, ytAuthCluster }, } = req;
8
8
  try {
9
9
  const presetsConfig = checkEnabled(req);
10
- const columns = await (0, table_1.getColumnPreset)(presetsConfig, hash);
10
+ const columns = await (0, table_1.getColumnPreset)(presetsConfig, hash, ytAuthCluster);
11
11
  if (!columns) {
12
12
  const err = new Error(`Cannot find column-preset by the hash '${hash}'`);
13
13
  req.ctx.logError('Failed to get preset of columns', err);
@@ -23,9 +23,10 @@ async function tableColumnPresetGet(req, res) {
23
23
  exports.tableColumnPresetGet = tableColumnPresetGet;
24
24
  async function tableColumnPresetSave(req, res) {
25
25
  const { body } = req;
26
+ const { params: { ytAuthCluster }, } = req;
26
27
  try {
27
28
  const presetsConfig = checkEnabled(req);
28
- const result = await (0, table_1.saveColumnPreset)(presetsConfig, body);
29
+ const result = await (0, table_1.saveColumnPreset)(presetsConfig, body, ytAuthCluster);
29
30
  res.status(200).send(result);
30
31
  }
31
32
  catch (err) {
@@ -65,7 +65,7 @@ async function ytTvmApiHandler(req, res) {
65
65
  }
66
66
  let cfg;
67
67
  try {
68
- cfg = (0, requestsSetup_1.getUserYTApiSetup)(params.cluster, req);
68
+ cfg = (0, requestsSetup_1.getUserYTApiSetup)(params.ytAuthCluster, req);
69
69
  }
70
70
  catch (e) {
71
71
  return sendError(e, 400);
@@ -28,7 +28,7 @@ const ALLOWED_ACTION = {
28
28
  };
29
29
  async function ytProxyApiImpl(req, res) {
30
30
  const { ctx, query } = req;
31
- const { command, cluster } = req.params;
31
+ const { command, ytAuthCluster } = req.params;
32
32
  const proxyAction = ALLOWED_ACTION[command];
33
33
  if (!proxyAction) {
34
34
  throw new Error('Unexpected action ' + command);
@@ -36,7 +36,7 @@ async function ytProxyApiImpl(req, res) {
36
36
  const search = lodash_1.default.isEmpty(query) ? '' : `?${qs_1.default.stringify(query)}`;
37
37
  let cfg;
38
38
  try {
39
- cfg = (0, requestsSetup_1.getUserYTApiSetup)(cluster, req);
39
+ cfg = (0, requestsSetup_1.getUserYTApiSetup)(ytAuthCluster, req);
40
40
  }
41
41
  catch (e) {
42
42
  return (0, utils_1.sendAndLogError)(req.ctx, res, 400, e);
@@ -21,17 +21,20 @@ nodekit.ctx.log('AppConfig details', {
21
21
  appInstallation,
22
22
  appDevMode,
23
23
  });
24
- const { ytAuthCluster, appAuthHandler } = nodekit.config;
25
- if (ytAuthCluster) {
26
- if (appAuthHandler) {
27
- nodekit.ctx.fail(new Error('"appAuthHandler" option will be ignored cause "ytAuthCluster" option is provided.'));
28
- }
24
+ const { allowPasswordAuth, ytOAuthSettings } = nodekit.config;
25
+ const authMiddlewares = [];
26
+ if (ytOAuthSettings) {
27
+ authMiddlewares.push((0, authorization_2.authorizationResolver)((0, oauth_1.createOAuthAuthorizationResolver)()));
28
+ }
29
+ if (allowPasswordAuth) {
30
+ authMiddlewares.push((0, authorization_2.authorizationResolver)((0, yt_auth_1.createYTAuthorizationResolver)()));
31
+ }
32
+ if (authMiddlewares.length) {
29
33
  nodekit.config.appBeforeAuthMiddleware = [
30
34
  ...(nodekit.config.appBeforeAuthMiddleware || []),
31
- (0, authorization_2.authorizationResolver)((0, oauth_1.createOAuthAuthorizationResolver)()),
32
- (0, authorization_2.authorizationResolver)((0, yt_auth_1.createYTAuthorizationResolver)()),
35
+ ...authMiddlewares,
33
36
  ];
34
- nodekit.config.appAuthHandler = (0, authorization_1.createAuthMiddleware)(ytAuthCluster);
37
+ nodekit.config.appAuthHandler = (0, authorization_1.createAuthMiddleware)();
35
38
  }
36
39
  (_b = (_a = nodekit.config).adjustAppConfig) === null || _b === void 0 ? void 0 : _b.call(_a, nodekit);
37
40
  const app = new expresskit_1.ExpressKit(nodekit, routes_1.default);
@@ -1,2 +1,2 @@
1
1
  import { AppMiddleware } from '@gravity-ui/expresskit';
2
- export declare function createAuthMiddleware(ytAuthCluster: string): AppMiddleware;
2
+ export declare function createAuthMiddleware(): AppMiddleware;
@@ -18,8 +18,9 @@ function isAuthError(e) {
18
18
  var _a;
19
19
  return e instanceof AuthError || (axios_1.default.isAxiosError(e) && ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401);
20
20
  }
21
- function createAuthMiddleware(ytAuthCluster) {
21
+ function createAuthMiddleware() {
22
22
  return async function authMiddleware(req, res, next) {
23
+ const { ytAuthCluster } = req.params;
23
24
  try {
24
25
  if (!(0, authorization_1.isAuthorized)(req)) {
25
26
  throw new AuthError();
@@ -30,7 +31,7 @@ function createAuthMiddleware(ytAuthCluster) {
30
31
  }
31
32
  catch (e) {
32
33
  const isAuthFailed = isAuthError(e);
33
- const error = isAuthFailed ? undefined : e;
34
+ const error = isAuthFailed ? { extraData: { ytAuthCluster } } : e;
34
35
  if (!req.routeInfo.ui && isAuthFailed) {
35
36
  (0, utils_1.sendError)(res, error, 401);
36
37
  return;
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createYTAuthorizationResolver = void 0;
4
4
  const constants_1 = require("../../shared/constants");
5
5
  function createYTAuthorizationResolver() {
6
- return async function resoleOAuthAuthorize(req, _, next) {
7
- const secret = req.cookies[constants_1.YT_CYPRESS_COOKIE_NAME];
6
+ return async function resolveYTAuthorization(req, _, next) {
7
+ const { ytAuthCluster } = req.params;
8
+ const secret = req.cookies[`${ytAuthCluster}:${constants_1.YT_CYPRESS_COOKIE_NAME}`];
8
9
  req.yt = {
9
10
  ytApiAuthHeaders: {
10
11
  Cookie: `${constants_1.YT_CYPRESS_COOKIE_NAME}=${secret};`,
@@ -21,42 +21,43 @@ const oauth_login_1 = require("./controllers/oauth-login");
21
21
  const logout_1 = require("./controllers/logout");
22
22
  const HOME_INDEX_TARGET = { handler: home_1.homeIndex, ui: true };
23
23
  const routes = {
24
- 'GET /change-password/': HOME_INDEX_TARGET,
24
+ 'GET /:ytAuthCluster/change-password/': HOME_INDEX_TARGET,
25
25
  'GET /': HOME_INDEX_TARGET,
26
26
  'GET /ping': { handler: ping_1.ping, authPolicy: expresskit_1.AuthPolicy.disabled },
27
- 'GET /api/cluster-info/:cluster': { handler: cluster_info_1.handleClusterInfo },
28
- 'GET /api/cluster-params/:cluster': { handler: cluster_params_1.clusterParams },
27
+ 'GET /api/cluster-info/:ytAuthCluster': { handler: cluster_info_1.handleClusterInfo },
28
+ 'GET /api/cluster-params/:ytAuthCluster': { handler: cluster_params_1.clusterParams },
29
29
  'GET /api/clusters/versions': { handler: clusters_1.clusterVersions },
30
- 'GET /api/pool-names/:cluster': { handler: scheduling_pools_1.getClusterPools },
31
- 'POST /api/yt/login': { handler: login_1.handleLogin, ui: true },
30
+ 'GET /api/clusters/auth-status': { handler: clusters_1.clusterAuthStatus },
31
+ 'GET /api/pool-names/:ytAuthCluster': { handler: scheduling_pools_1.getClusterPools },
32
+ 'POST /api/yt/:ytAuthCluster/login': { handler: login_1.handleLogin, ui: true },
32
33
  'GET /api/yt/logout': { handler: logout_1.handleLogout, ui: true },
33
34
  'GET /oauth/login': { handler: oauth_login_1.oauthLogin, ui: true },
34
35
  'GET /api/oauth/callback': { handler: oauth_login_1.oauthCallback, ui: true },
35
36
  'GET /api/oauth/logout/callback': { handler: oauth_login_1.oauthLogout, ui: true },
36
- 'POST /api/yt/change-password': { handler: login_1.handleChangePassword, ui: true },
37
+ 'POST /api/yt/:ytAuthCluster/change-password': { handler: login_1.handleChangePassword, ui: true },
37
38
  'POST /api/remote-copy': { handler: remote_copy_1.handleRemoteCopy },
38
39
  'POST /api/markdown-to-html': { handler: markdown_to_html_1.markdownToHtmlHandler },
39
- 'GET /api/yt/:cluster/api/:version/:command': { handler: yt_api_1.ytTvmApiHandler },
40
- 'POST /api/yt/:cluster/api/:version/:command': { handler: yt_api_1.ytTvmApiHandler },
41
- 'PUT /api/yt/:cluster/api/:version/:command': { handler: yt_api_1.ytTvmApiHandler },
42
- 'GET /api/yt-proxy/:cluster/:command': { handler: yt_proxy_api_1.ytProxyApi },
43
- 'GET /api/odin/proxy/:action/:cluster?': { handler: odin_proxy_api_1.odinProxyApi },
40
+ 'GET /api/yt/:ytAuthCluster/api/:version/:command': { handler: yt_api_1.ytTvmApiHandler },
41
+ 'POST /api/yt/:ytAuthCluster/api/:version/:command': { handler: yt_api_1.ytTvmApiHandler },
42
+ 'PUT /api/yt/:ytAuthCluster/api/:version/:command': { handler: yt_api_1.ytTvmApiHandler },
43
+ 'GET /api/yt-proxy/:ytAuthCluster/:command': { handler: yt_proxy_api_1.ytProxyApi },
44
+ 'GET /api/odin/proxy/:action/:ytAuthCluster?': { handler: odin_proxy_api_1.odinProxyApi },
44
45
  'GET /api/odin/clusters/availability': { handler: availability_1.getClustersAvailability },
45
- 'POST /api/chyt/:cluster/:action': { handler: chyt_api_1.chytProxyApi },
46
- 'GET /api/settings/:username': { handler: settings_1.settingsGet },
47
- 'POST /api/settings/:username': { handler: settings_1.settingsCreate },
48
- 'GET /api/settings/:username/:path': { handler: settings_1.settingsGetItem },
49
- 'PUT /api/settings/:username/:path': { handler: settings_1.settingsSetItem },
50
- 'DELETE /api/settings/:username/:path': { handler: settings_1.settingsDeleteItem },
51
- 'GET /api/table-column-preset/:hash': {
46
+ 'POST /api/chyt/:ytAuthCluster/:action': { handler: chyt_api_1.chytProxyApi },
47
+ 'GET /api/settings/:ytAuthCluster/:username': { handler: settings_1.settingsGet },
48
+ 'POST /api/settings/:ytAuthCluster/:username': { handler: settings_1.settingsCreate },
49
+ 'GET /api/settings/:ytAuthCluster/:username/:path': { handler: settings_1.settingsGetItem },
50
+ 'PUT /api/settings/:ytAuthCluster/:username/:path': { handler: settings_1.settingsSetItem },
51
+ 'DELETE /api/settings/:ytAuthCluster/:username/:path': { handler: settings_1.settingsDeleteItem },
52
+ 'GET /api/table-column-preset/:ytAuthCluster/:hash': {
52
53
  handler: table_column_preset_1.tableColumnPresetGet,
53
54
  },
54
- 'POST /api/table-column-preset': { handler: table_column_preset_1.tableColumnPresetSave },
55
- 'GET /:cluster/': HOME_INDEX_TARGET,
56
- 'GET /:cluster/maintenance': { handler: home_1.homeRedirect },
57
- 'GET /:cluster/:page': HOME_INDEX_TARGET,
58
- 'GET /:cluster/:page/:tab': HOME_INDEX_TARGET,
59
- 'GET /:cluster/:page/:operation/:tab': HOME_INDEX_TARGET,
60
- 'GET /:cluster/:page/:operation/:job/:tab': HOME_INDEX_TARGET,
55
+ 'POST /api/table-column-preset/:ytAuthCluster': { handler: table_column_preset_1.tableColumnPresetSave },
56
+ 'GET /:ytAuthCluster/': HOME_INDEX_TARGET,
57
+ 'GET /:ytAuthCluster/maintenance': { handler: home_1.homeRedirect },
58
+ 'GET /:ytAuthCluster/:page': HOME_INDEX_TARGET,
59
+ 'GET /:ytAuthCluster/:page/:tab': HOME_INDEX_TARGET,
60
+ 'GET /:ytAuthCluster/:page/:operation/:tab': HOME_INDEX_TARGET,
61
+ 'GET /:ytAuthCluster/:page/:operation/:job/:tab': HOME_INDEX_TARGET,
61
62
  };
62
63
  exports.default = routes;
@@ -6,7 +6,7 @@ import { AppContext } from '@gravity-ui/nodekit';
6
6
  export declare function isProductionEnv(): boolean;
7
7
  export declare function isLocalModeByEnvironment(): boolean;
8
8
  export declare function getInterfaceVersion(): any;
9
- export declare function prepareErrorToSend(e: unknown): import("../../@types/types").YTError;
9
+ export declare function prepareErrorToSend(e: unknown): import("../../@types/types").YTError | Record<string, any>;
10
10
  export declare function sendResponse(res: Response, data: object): Response<any, Record<string, any>>;
11
11
  export declare function sendError(res: Response, error: unknown, errCode?: number): Response<any, Record<string, any>>;
12
12
  export declare const UNEXPECTED_PIPE_AXIOS_RESPONSE = "Unexpected behavior: response.data should be an instance of stream.Readable";
@@ -63,18 +63,26 @@ function getInterfaceVersion() {
63
63
  }
64
64
  }
65
65
  exports.getInterfaceVersion = getInterfaceVersion;
66
+ function isExtraDataError(error) {
67
+ return error.extraData !== undefined;
68
+ }
66
69
  function prepareErrorToSend(e) {
67
- let message = '';
70
+ const res = {
71
+ message: '',
72
+ };
68
73
  if (e instanceof Error) {
69
- message = lodash_1.default.toString(e);
74
+ res.message = lodash_1.default.toString(e);
70
75
  }
71
76
  else if ((0, utils_1.isYTError)(e)) {
72
77
  return e;
73
78
  }
74
79
  else {
75
- message = JSON.stringify(e);
80
+ res.message = JSON.stringify(e);
81
+ }
82
+ if (isExtraDataError(e)) {
83
+ res.extraData = e.extraData;
76
84
  }
77
- return { message };
85
+ return res;
78
86
  }
79
87
  exports.prepareErrorToSend = prepareErrorToSend;
80
88
  function sendResponse(res, data) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ytsaurus/ui",
3
- "version": "1.16.1",
3
+ "version": "1.17.0",
4
4
  "repository": {
5
5
  "type": "github",
6
6
  "url": "https://github.com/YTsaurus/ytsaurus-ui/tree/main/packages/ui"
@@ -184,7 +184,7 @@
184
184
  "engines": {
185
185
  "node": ">=18"
186
186
  },
187
- "gitHead": "a27c40796380935d0154ad4b86be06f6e44c8d2f",
187
+ "gitHead": "d84e271b9803558730eead6fd07d230b676400b8",
188
188
  "overrides": {
189
189
  "react-split-pane": {
190
190
  "react": "$react",