@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
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_settings","require","_utils","_interopRequireDefault","obj","__esModule","default","sendResponse","_req","res","data","set","status","send","JSON","stringify","settingsCreate","req","ctx","username","params","create","then","bind","sendError","settingsGet","get","settingsGetItem","_x","_x2","_settingsGetItem","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_req$params3","path","wrap","_callee$","_context","prev","next","abrupt","getItem","stop","settingsSetItem","_req$params","_req$body","body","_req$body2","value","setItem","settingsDeleteItem","_req$params2","deleteItem"],"sources":["settings.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport {create, deleteItem, get, getItem, setItem} from '../components/settings';\nimport {sendError} from '../utils';\n\nfunction sendResponse(_req: Request, res: Response, data: object) {\n return res.set('content-type', 'application/json').status(200).send(JSON.stringify(data));\n}\n\nexport function settingsCreate(req: Request, res: Response) {\n const {\n ctx,\n params: {username},\n } = req;\n\n return create({ctx, username})\n .then(sendResponse.bind(null, req, res))\n .catch(sendError.bind(null, res));\n}\nexport function settingsGet(req: Request, res: Response) {\n const {\n ctx,\n params: {username},\n } = req;\n\n return get({ctx, username})\n .then(sendResponse.bind(null, req, res))\n .catch(sendError.bind(null, res));\n}\nexport async function settingsGetItem(req: Request, res: Response) {\n const {\n ctx,\n params: {username, path},\n } = req;\n\n return getItem({ctx, username, path})\n .then(sendResponse.bind(null, req, res))\n .catch(sendError.bind(null, res));\n}\nexport function settingsSetItem(req: Request, res: Response) {\n const {\n ctx,\n params: {username, path},\n body: {value} = {},\n } = req;\n\n return setItem({ctx, username, path, value})\n .then(sendResponse.bind(null, req, res))\n .catch(sendError.bind(null, res));\n}\nexport function settingsDeleteItem(req: Request, res: Response) {\n const {\n ctx,\n params: {username, path},\n } = req;\n\n return deleteItem({ctx, username, path})\n .then(sendResponse.bind(null, req, res))\n .catch(sendError.bind(null, res));\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_settings","require","_utils","_interopRequireDefault","obj","__esModule","default","sendResponse","_req","res","data","set","status","send","JSON","stringify","settingsCreate","req","ctx","_req$params","params","username","ytAuthCluster","create","cluster","then","bind","sendError","settingsGet","_req$params2","get","settingsGetItem","_x","_x2","_settingsGetItem","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_req$params5","path","wrap","_callee$","_context","prev","next","abrupt","getItem","stop","settingsSetItem","_req$params3","_req$body","body","_req$body2","value","setItem","settingsDeleteItem","_req$params4","deleteItem"],"sources":["settings.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport {create, deleteItem, get, getItem, setItem} from '../components/settings';\nimport {sendError} from '../utils';\n\nfunction sendResponse(_req: Request, res: Response, data: object) {\n return res.set('content-type', 'application/json').status(200).send(JSON.stringify(data));\n}\n\nexport function settingsCreate(req: Request, res: Response) {\n const {\n ctx,\n params: {username, ytAuthCluster},\n } = req;\n\n return create({ctx, username, cluster: ytAuthCluster})\n .then(sendResponse.bind(null, req, res))\n .catch(sendError.bind(null, res));\n}\nexport function settingsGet(req: Request, res: Response) {\n const {\n ctx,\n params: {username, ytAuthCluster},\n } = req;\n\n return get({ctx, username, cluster: ytAuthCluster})\n .then(sendResponse.bind(null, req, res))\n .catch(sendError.bind(null, res));\n}\nexport async function settingsGetItem(req: Request, res: Response) {\n const {\n ctx,\n params: {username, path, ytAuthCluster},\n } = req;\n\n return getItem({ctx, username, path, cluster: ytAuthCluster})\n .then(sendResponse.bind(null, req, res))\n .catch(sendError.bind(null, res));\n}\nexport function settingsSetItem(req: Request, res: Response) {\n const {\n ctx,\n params: {username, path, ytAuthCluster},\n body: {value} = {},\n } = req;\n\n return setItem({ctx, username, path, value, cluster: ytAuthCluster})\n .then(sendResponse.bind(null, req, res))\n .catch(sendError.bind(null, res));\n}\nexport function settingsDeleteItem(req: Request, res: Response) {\n const {\n ctx,\n params: {username, path, ytAuthCluster},\n } = req;\n\n return deleteItem({ctx, username, path, cluster: ytAuthCluster})\n .then(sendResponse.bind(null, req, res))\n .catch(sendError.bind(null, res));\n}\n"],"mappings":"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"}
@@ -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) {
@@ -1 +1 @@
1
- {"version":3,"names":["_table","require","_utils","_interopRequireDefault","obj","__esModule","default","tableColumnPresetGet","_x","_x2","_tableColumnPresetGet","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","hash","presetsConfig","columns","err","wrap","_callee$","_context","prev","next","params","checkEnabled","getColumnPreset","sent","Error","concat","ctx","logError","status","send","prepareErrorToSend","t0","stop","tableColumnPresetSave","_x3","_x4","_tableColumnPresetSave","_callee2","body","result","_callee2$","_context2","saveColumnPreset","userColumnPresets","config","isUserColumnPresetsEnabled","Boolean"],"sources":["table-column-preset.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport {getColumnPreset, saveColumnPreset} from '../components/table';\nimport {prepareErrorToSend} from '../utils';\n\nexport async function tableColumnPresetGet(req: Request, res: Response) {\n const {\n params: {hash},\n } = req;\n try {\n const presetsConfig = checkEnabled(req);\n const columns = await getColumnPreset(presetsConfig, hash);\n if (!columns) {\n const err = new Error(`Cannot find column-preset by the hash '${hash}'`);\n req.ctx.logError('Failed to get preset of columns', err);\n res.status(404).send(prepareErrorToSend(err));\n }\n\n res.status(200).send({hash, columns});\n } catch (err) {\n req.ctx.logError('Failed to get preset of columns', err);\n res.status(500).send(prepareErrorToSend(err));\n }\n}\n\nexport async function tableColumnPresetSave(req: Request, res: Response) {\n const {body} = req;\n try {\n const presetsConfig = checkEnabled(req);\n const result = await saveColumnPreset(presetsConfig, body);\n res.status(200).send(result);\n } catch (err) {\n req.ctx.logError('Failed to save preset of columns', err);\n res.status(500).send(prepareErrorToSend(err));\n }\n}\n\nfunction checkEnabled(req: Request) {\n const {userColumnPresets} = req.ctx.config;\n\n if (!userColumnPresets) {\n throw new Error(\n \"Users' table column presets are not enabled. You have to provide 'userColumnPresets' section in your config to use it.\",\n );\n }\n return userColumnPresets;\n}\n\nexport function isUserColumnPresetsEnabled(req: Request) {\n return Boolean(req.ctx.config.userColumnPresets);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_table","require","_utils","_interopRequireDefault","obj","__esModule","default","tableColumnPresetGet","_x","_x2","_tableColumnPresetGet","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","_req$params","hash","ytAuthCluster","presetsConfig","columns","err","wrap","_callee$","_context","prev","next","params","checkEnabled","getColumnPreset","sent","Error","concat","ctx","logError","status","send","prepareErrorToSend","t0","stop","tableColumnPresetSave","_x3","_x4","_tableColumnPresetSave","_callee2","body","result","_callee2$","_context2","saveColumnPreset","userColumnPresets","config","isUserColumnPresetsEnabled","Boolean"],"sources":["table-column-preset.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport {getColumnPreset, saveColumnPreset} from '../components/table';\nimport {prepareErrorToSend} from '../utils';\n\nexport async function tableColumnPresetGet(req: Request, res: Response) {\n const {\n params: {hash, ytAuthCluster},\n } = req;\n try {\n const presetsConfig = checkEnabled(req);\n const columns = await getColumnPreset(presetsConfig, hash, ytAuthCluster);\n if (!columns) {\n const err = new Error(`Cannot find column-preset by the hash '${hash}'`);\n req.ctx.logError('Failed to get preset of columns', err);\n res.status(404).send(prepareErrorToSend(err));\n }\n\n res.status(200).send({hash, columns});\n } catch (err) {\n req.ctx.logError('Failed to get preset of columns', err);\n res.status(500).send(prepareErrorToSend(err));\n }\n}\n\nexport async function tableColumnPresetSave(req: Request, res: Response) {\n const {body} = req;\n const {\n params: {ytAuthCluster},\n } = req;\n\n try {\n const presetsConfig = checkEnabled(req);\n const result = await saveColumnPreset(presetsConfig, body, ytAuthCluster);\n res.status(200).send(result);\n } catch (err) {\n req.ctx.logError('Failed to save preset of columns', err);\n res.status(500).send(prepareErrorToSend(err));\n }\n}\n\nfunction checkEnabled(req: Request) {\n const {userColumnPresets} = req.ctx.config;\n\n if (!userColumnPresets) {\n throw new Error(\n \"Users' table column presets are not enabled. You have to provide 'userColumnPresets' section in your config to use it.\",\n );\n }\n return userColumnPresets;\n}\n\nexport function isUserColumnPresetsEnabled(req: Request) {\n return Boolean(req.ctx.config.userColumnPresets);\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAA2C,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE3C,SAAsBG,oBAAoBA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,qBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAkBzC,SAAAF,sBAAA;EAAAA,qBAAA,OAAAG,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAlBM,SAAAC,QAAoCC,GAAY,EAAEC,GAAa;IAAA,IAAAC,WAAA,EAAAC,IAAA,EAAAC,aAAA,EAAAC,aAAA,EAAAC,OAAA,EAAAC,GAAA;IAAA,OAAAV,oBAAA,CAAAW,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAV,WAAA,GAG9DF,GAAG,CADHa,MAAM,EAAGV,IAAI,GAAAD,WAAA,CAAJC,IAAI,EAAEC,aAAa,GAAAF,WAAA,CAAbE,aAAa;UAAAM,QAAA,CAAAC,IAAA;UAGtBN,aAAa,GAAGS,YAAY,CAACd,GAAG,CAAC;UAAAU,QAAA,CAAAE,IAAA;UAAA,OACjB,IAAAG,sBAAe,EAACV,aAAa,EAAEF,IAAI,EAAEC,aAAa,CAAC;QAAA;UAAnEE,OAAO,GAAAI,QAAA,CAAAM,IAAA;UACb,IAAI,CAACV,OAAO,EAAE;YACJC,GAAG,GAAG,IAAIU,KAAK,2CAAAC,MAAA,CAA2Cf,IAAI,MAAG,CAAC;YACxEH,GAAG,CAACmB,GAAG,CAACC,QAAQ,CAAC,iCAAiC,EAAEb,GAAG,CAAC;YACxDN,GAAG,CAACoB,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAAC,yBAAkB,EAAChB,GAAG,CAAC,CAAC;UACjD;UAEAN,GAAG,CAACoB,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;YAACnB,IAAI,EAAJA,IAAI;YAAEG,OAAO,EAAPA;UAAO,CAAC,CAAC;UAACI,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAc,EAAA,GAAAd,QAAA;UAEtCV,GAAG,CAACmB,GAAG,CAACC,QAAQ,CAAC,iCAAiC,EAAAV,QAAA,CAAAc,EAAK,CAAC;UACxDvB,GAAG,CAACoB,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAAC,yBAAkB,EAAAb,QAAA,CAAAc,EAAI,CAAC,CAAC;QAAC;QAAA;UAAA,OAAAd,QAAA,CAAAe,IAAA;MAAA;IAAA,GAAA1B,OAAA;EAAA,CAErD;EAAA,OAAAN,qBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,SAAsB+B,qBAAqBA,CAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,sBAAA,CAAAnC,KAAA,OAAAC,SAAA;AAAA;AAc1C,SAAAkC,uBAAA;EAAAA,sBAAA,OAAAjC,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAdM,SAAAgC,SAAqC9B,GAAY,EAAEC,GAAa;IAAA,IAAA8B,IAAA,EAAA3B,aAAA,EAAAC,aAAA,EAAA2B,MAAA;IAAA,OAAAnC,oBAAA,CAAAW,IAAA,UAAAyB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAvB,IAAA,GAAAuB,SAAA,CAAAtB,IAAA;QAAA;UAC5DmB,IAAI,GAAI/B,GAAG,CAAX+B,IAAI;UAEE3B,aAAa,GACtBJ,GAAG,CADHa,MAAM,CAAGT,aAAa;UAAA8B,SAAA,CAAAvB,IAAA;UAIhBN,aAAa,GAAGS,YAAY,CAACd,GAAG,CAAC;UAAAkC,SAAA,CAAAtB,IAAA;UAAA,OAClB,IAAAuB,uBAAgB,EAAC9B,aAAa,EAAE0B,IAAI,EAAE3B,aAAa,CAAC;QAAA;UAAnE4B,MAAM,GAAAE,SAAA,CAAAlB,IAAA;UACZf,GAAG,CAACoB,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAACU,MAAM,CAAC;UAACE,SAAA,CAAAtB,IAAA;UAAA;QAAA;UAAAsB,SAAA,CAAAvB,IAAA;UAAAuB,SAAA,CAAAV,EAAA,GAAAU,SAAA;UAE7BlC,GAAG,CAACmB,GAAG,CAACC,QAAQ,CAAC,kCAAkC,EAAAc,SAAA,CAAAV,EAAK,CAAC;UACzDvB,GAAG,CAACoB,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAAC,yBAAkB,EAAAW,SAAA,CAAAV,EAAI,CAAC,CAAC;QAAC;QAAA;UAAA,OAAAU,SAAA,CAAAT,IAAA;MAAA;IAAA,GAAAK,QAAA;EAAA,CAErD;EAAA,OAAAD,sBAAA,CAAAnC,KAAA,OAAAC,SAAA;AAAA;AAED,SAASmB,YAAYA,CAACd,GAAY,EAAE;EAChC,IAAOoC,iBAAiB,GAAIpC,GAAG,CAACmB,GAAG,CAACkB,MAAM,CAAnCD,iBAAiB;EAExB,IAAI,CAACA,iBAAiB,EAAE;IACpB,MAAM,IAAInB,KAAK,CACX,wHACJ,CAAC;EACL;EACA,OAAOmB,iBAAiB;AAC5B;AAEO,SAASE,0BAA0BA,CAACtC,GAAY,EAAE;EACrD,OAAOuC,OAAO,CAACvC,GAAG,CAACmB,GAAG,CAACkB,MAAM,CAACD,iBAAiB,CAAC;AACpD"}
@@ -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);
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_qs","_javascriptWrapper","_utils","os","_interopRequireWildcard","_utils2","_constants","_requestsSetup","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","yt","ytLib","YT_API_REQUEST_ID_HEADER_LOWER","YT_API_REQUEST_ID_HEADER","toLowerCase","YT_KNOWN_COMMANDS","Set","supportedCommands","getSupportedCommands","ytTvmApiHandler","_x","_x2","_ytTvmApiHandler","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee3","req","res","_ref","ctx","params","referer","sendError","_sendError","cfg","_cfg","setup","authHeaders","isLocalCluster","clusterApi","commandInfo","action","timeStart","ytApiId","sendStats","proxy","secure","proto","requestProxy","_res","search","requestUrl","_req$headers","host","cookie","_apiId","rest","_response","wrap","_callee3$","_context3","prev","next","_sendStats","overrides","_ctx$stats","timestamp","Date","now","headerContentLength","contentLength","Number","stats","_objectSpread","isNaN","hostname","service","id","requestTime","requestId","page","getYtPageIdParts","getPage","_sendError3","_callee2","statusCode","_args2","_callee2$","_context2","length","undefined","sendAndLogError","method","query","stop","_sendError2","_x3","headers","getUserYTApiSetup","cluster","t0","abrupt","version","Error","concat","command","heavy","log","axios","request","url","getMetadata","sent","data","_isEmpty","qs","stringify","_objectWithoutProperties","map","_toPropertyKey","body","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","pipeAxiosResponse","UNEXPECTED_PIPE_AXIOS_RESPONSE","responseStatus","status","_x4","t1","t2"],"sources":["yt-api.ts"],"sourcesContent":["import axios, {AxiosError} from 'axios';\nimport type {Request, Response} from 'express';\nimport qs from 'qs';\nimport _ from 'lodash';\n// @ts-ignore\nimport ytLib from '@ytsaurus/javascript-wrapper';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\nimport * as os from 'os';\nimport {getYtPageIdParts} from '../../shared/utils';\nimport {YT_API_REQUEST_ID_HEADER} from '../../shared/constants';\nimport {getUserYTApiSetup} from '../components/requestsSetup';\n\nconst yt = ytLib();\n\ninterface Params {\n cluster: string;\n version: string;\n command: string;\n}\n\ninterface CommandConfig {\n heavy: boolean;\n}\n\nconst YT_API_REQUEST_ID_HEADER_LOWER = YT_API_REQUEST_ID_HEADER.toLowerCase();\n\nconst YT_KNOWN_COMMANDS = new Set(['get_job_stderr', 'get_job_input', 'get_job_fail_context']);\n\nconst supportedCommands: Record<string, Map<string, CommandConfig>> = yt.getSupportedCommands();\n\nexport async function ytTvmApiHandler(req: Request, res: Response) {\n const {ctx, params} = req as any as Request<Params>;\n const {referer} = req.headers;\n\n async function sendError(e: Error | AxiosError, statusCode: number | null = null) {\n await sendAndLogError(ctx, res, statusCode, e, {\n method: 'nodejs',\n query: req.query,\n page: referer,\n });\n }\n\n let cfg;\n try {\n cfg = getUserYTApiSetup(params.cluster, req);\n } catch (e: any) {\n return sendError(e, 400);\n }\n const {setup, authHeaders, isLocalCluster} = cfg;\n\n const {[params.version]: clusterApi} = supportedCommands;\n if (!clusterApi) {\n return sendError(new Error(`Unexpected api version: [${params.version}]`), 400);\n }\n\n const commandInfo = clusterApi.get(params.command);\n if (!commandInfo && !YT_KNOWN_COMMANDS.has(params.command)) {\n return sendError(new Error(`Unexpected command: [${params.command}]`), 400);\n }\n\n const action = `${params.version}/${params.command}`;\n const timeStart = Date.now();\n\n const {[YT_API_REQUEST_ID_HEADER_LOWER]: ytApiId} = req.headers;\n\n function sendStats(overrides: {\n responseStatus: number;\n headerContentLength?: string;\n pipedDataSize?: number;\n }) {\n const timestamp = Date.now();\n const {headerContentLength} = overrides;\n const contentLength = Number(headerContentLength);\n ctx.stats?.('ytRequests', {\n ...overrides,\n headerContentLength: isNaN(contentLength) ? 0 : contentLength,\n timestamp,\n host: os.hostname(),\n service: setup.id,\n requestTime: timestamp - timeStart,\n requestId: req.id,\n action: (ytApiId as string) || action,\n referer: referer ?? '',\n page: !referer ? '' : getYtPageIdParts(referer).getPage(),\n });\n }\n\n try {\n const {proxy, secure} = setup;\n const proto = secure ? 'https' : 'http';\n let requestProxy = proxy;\n if (commandInfo?.heavy && !isLocalCluster) {\n ctx.log(`Request heavy proxy for command '${params.command}'`);\n const res = await axios.request({\n method: 'GET',\n url: `${proto}://${proxy}/hosts`,\n headers: ctx.getMetadata(),\n });\n requestProxy = res.data[0];\n }\n\n const search = _.isEmpty(req.query) ? '' : `?${qs.stringify(req.query)}`;\n const requestUrl = `${proto}://${requestProxy}/api/${action}${search}`;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {host, cookie, [YT_API_REQUEST_ID_HEADER_LOWER]: _apiId, ...rest} = req.headers;\n ctx.log('Request', {requestUrl, 'X-YT-Correlation-Id': req.id});\n\n await axios\n .request({\n url: requestUrl,\n method: req.method as any,\n headers: {\n ...ctx.getMetadata(),\n ...rest,\n 'accept-encoding': 'gzip',\n 'X-YT-Correlation-Id': req.id,\n 'X-YT-Suppress-Redirect': '1',\n ...authHeaders,\n },\n data: req.body,\n timeout: 100000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(ctx, res, response);\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n sendStats({...pipedSize, responseStatus: response.status});\n });\n } catch (e) {\n try {\n await sendError(e as any, 500);\n } catch {}\n sendStats({\n responseStatus: (e as AxiosError)?.response?.status || 500,\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_axios","_interopRequireDefault","require","_qs","_javascriptWrapper","_utils","os","_interopRequireWildcard","_utils2","_constants","_requestsSetup","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","yt","ytLib","YT_API_REQUEST_ID_HEADER_LOWER","YT_API_REQUEST_ID_HEADER","toLowerCase","YT_KNOWN_COMMANDS","Set","supportedCommands","getSupportedCommands","ytTvmApiHandler","_x","_x2","_ytTvmApiHandler","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee3","req","res","_ref","ctx","params","referer","sendError","_sendError","cfg","_cfg","setup","authHeaders","isLocalCluster","clusterApi","commandInfo","action","timeStart","ytApiId","sendStats","proxy","secure","proto","requestProxy","_res","search","requestUrl","_req$headers","host","cookie","_apiId","rest","_response","wrap","_callee3$","_context3","prev","next","_sendStats","overrides","_ctx$stats","timestamp","Date","now","headerContentLength","contentLength","Number","stats","_objectSpread","isNaN","hostname","service","id","requestTime","requestId","page","getYtPageIdParts","getPage","_sendError3","_callee2","statusCode","_args2","_callee2$","_context2","length","undefined","sendAndLogError","method","query","stop","_sendError2","_x3","headers","getUserYTApiSetup","ytAuthCluster","t0","abrupt","version","Error","concat","command","heavy","log","axios","request","url","getMetadata","sent","data","_isEmpty","qs","stringify","_objectWithoutProperties","map","_toPropertyKey","body","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","pipeAxiosResponse","UNEXPECTED_PIPE_AXIOS_RESPONSE","responseStatus","status","_x4","t1","t2"],"sources":["yt-api.ts"],"sourcesContent":["import axios, {AxiosError} from 'axios';\nimport type {Request, Response} from 'express';\nimport qs from 'qs';\nimport _ from 'lodash';\n// @ts-ignore\nimport ytLib from '@ytsaurus/javascript-wrapper';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\nimport * as os from 'os';\nimport {getYtPageIdParts} from '../../shared/utils';\nimport {YT_API_REQUEST_ID_HEADER} from '../../shared/constants';\nimport {getUserYTApiSetup} from '../components/requestsSetup';\n\nconst yt = ytLib();\n\ninterface Params {\n ytAuthCluster: string;\n version: string;\n command: string;\n}\n\ninterface CommandConfig {\n heavy: boolean;\n}\n\nconst YT_API_REQUEST_ID_HEADER_LOWER = YT_API_REQUEST_ID_HEADER.toLowerCase();\n\nconst YT_KNOWN_COMMANDS = new Set(['get_job_stderr', 'get_job_input', 'get_job_fail_context']);\n\nconst supportedCommands: Record<string, Map<string, CommandConfig>> = yt.getSupportedCommands();\n\nexport async function ytTvmApiHandler(req: Request, res: Response) {\n const {ctx, params} = req as any as Request<Params>;\n const {referer} = req.headers;\n\n async function sendError(e: Error | AxiosError, statusCode: number | null = null) {\n await sendAndLogError(ctx, res, statusCode, e, {\n method: 'nodejs',\n query: req.query,\n page: referer,\n });\n }\n\n let cfg;\n try {\n cfg = getUserYTApiSetup(params.ytAuthCluster, req);\n } catch (e: any) {\n return sendError(e, 400);\n }\n const {setup, authHeaders, isLocalCluster} = cfg;\n\n const {[params.version]: clusterApi} = supportedCommands;\n if (!clusterApi) {\n return sendError(new Error(`Unexpected api version: [${params.version}]`), 400);\n }\n\n const commandInfo = clusterApi.get(params.command);\n if (!commandInfo && !YT_KNOWN_COMMANDS.has(params.command)) {\n return sendError(new Error(`Unexpected command: [${params.command}]`), 400);\n }\n\n const action = `${params.version}/${params.command}`;\n const timeStart = Date.now();\n\n const {[YT_API_REQUEST_ID_HEADER_LOWER]: ytApiId} = req.headers;\n\n function sendStats(overrides: {\n responseStatus: number;\n headerContentLength?: string;\n pipedDataSize?: number;\n }) {\n const timestamp = Date.now();\n const {headerContentLength} = overrides;\n const contentLength = Number(headerContentLength);\n ctx.stats?.('ytRequests', {\n ...overrides,\n headerContentLength: isNaN(contentLength) ? 0 : contentLength,\n timestamp,\n host: os.hostname(),\n service: setup.id,\n requestTime: timestamp - timeStart,\n requestId: req.id,\n action: (ytApiId as string) || action,\n referer: referer ?? '',\n page: !referer ? '' : getYtPageIdParts(referer).getPage(),\n });\n }\n\n try {\n const {proxy, secure} = setup;\n const proto = secure ? 'https' : 'http';\n let requestProxy = proxy;\n if (commandInfo?.heavy && !isLocalCluster) {\n ctx.log(`Request heavy proxy for command '${params.command}'`);\n const res = await axios.request({\n method: 'GET',\n url: `${proto}://${proxy}/hosts`,\n headers: ctx.getMetadata(),\n });\n requestProxy = res.data[0];\n }\n\n const search = _.isEmpty(req.query) ? '' : `?${qs.stringify(req.query)}`;\n const requestUrl = `${proto}://${requestProxy}/api/${action}${search}`;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {host, cookie, [YT_API_REQUEST_ID_HEADER_LOWER]: _apiId, ...rest} = req.headers;\n ctx.log('Request', {requestUrl, 'X-YT-Correlation-Id': req.id});\n\n await axios\n .request({\n url: requestUrl,\n method: req.method as any,\n headers: {\n ...ctx.getMetadata(),\n ...rest,\n 'accept-encoding': 'gzip',\n 'X-YT-Correlation-Id': req.id,\n 'X-YT-Suppress-Redirect': '1',\n ...authHeaders,\n },\n data: req.body,\n timeout: 100000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(ctx, res, response);\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n sendStats({...pipedSize, responseStatus: response.status});\n });\n } catch (e) {\n try {\n await sendError(e as any, 500);\n } catch {}\n sendStats({\n responseStatus: (e as AxiosError)?.response?.status || 500,\n });\n }\n}\n"],"mappings":"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"}
@@ -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);
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_qs","_utils","_requestsSetup","obj","__esModule","default","ytProxyApi","_x","_x2","_ytProxyApi","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","wrap","_callee$","_context","prev","next","ytProxyApiImpl","t0","sendAndLogError","ctx","method","query","page","headers","referer","stop","ALLOWED_ACTION","_ALLOWED_ACTION","_defineProperty","_x3","_x4","_ytProxyApiImpl","_callee3","_req$params","command","cluster","proxyAction","search","cfg","_cfg","authHeaders","proxyBaseUrl","_callee3$","_context3","params","Error","_isEmpty","concat","qs","stringify","getUserYTApiSetup","abrupt","axios","request","url","_objectSpread","getMetadata","data","body","timeout","responseType","then","_ref","_callee2","response","pipedSize","_callee2$","_context2","pipeAxiosResponse","sent","UNEXPECTED_PIPE_AXIOS_RESPONSE","_x5"],"sources":["yt-proxy-api.ts"],"sourcesContent":["import _ from 'lodash';\nimport axios from 'axios';\nimport qs from 'qs';\n\nimport type {Request, Response} from 'express';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\nimport {getUserYTApiSetup} from '../components/requestsSetup';\n\nexport async function ytProxyApi(req: Request, res: Response) {\n try {\n await ytProxyApiImpl(req, res);\n } catch (e: any) {\n await sendAndLogError(req.ctx, res, 500, e, {\n method: 'nodejs',\n query: req.query,\n page: req.headers.referer,\n });\n }\n}\n\nconst ALLOWED_ACTION: Record<string, string> = {\n ['hosts-all']: '/hosts/all',\n ['internal-discover_versions']: '/internal/discover_versions/v2',\n};\n\nasync function ytProxyApiImpl(req: Request, res: Response) {\n const {ctx, query} = req;\n const {command, cluster} = req.params;\n\n const proxyAction = ALLOWED_ACTION[command];\n if (!proxyAction) {\n throw new Error('Unexpected action ' + command);\n }\n\n const search = _.isEmpty(query) ? '' : `?${qs.stringify(query)}`;\n\n let cfg;\n try {\n cfg = getUserYTApiSetup(cluster, req);\n } catch (e: any) {\n return sendAndLogError(req.ctx, res, 400, e);\n }\n\n const {authHeaders, proxyBaseUrl} = cfg;\n\n return axios\n .request({\n url: `${proxyBaseUrl}${proxyAction}${search}`,\n method: req.method as any,\n headers: {...ctx.getMetadata(), ...authHeaders, 'accept-encoding': 'gzip'},\n data: req.body,\n timeout: 100000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(ctx, res, response);\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n });\n}\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,GAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAA6D,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;AAE7D,SAAsBG,UAAUA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,WAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAU/B,SAAAF,YAAA;EAAAA,WAAA,OAAAG,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAVM,SAAAC,QAA0BC,GAAY,EAAEC,GAAa;IAAA,OAAAJ,oBAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAE,IAAA;UAAA,OAE9CC,cAAc,CAACP,GAAG,EAAEC,GAAG,CAAC;QAAA;UAAAG,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAI,EAAA,GAAAJ,QAAA;UAAAA,QAAA,CAAAE,IAAA;UAAA,OAExB,IAAAG,sBAAe,EAACT,GAAG,CAACU,GAAG,EAAET,GAAG,EAAE,GAAG,EAAAG,QAAA,CAAAI,EAAA,EAAK;YACxCG,MAAM,EAAE,QAAQ;YAChBC,KAAK,EAAEZ,GAAG,CAACY,KAAK;YAChBC,IAAI,EAAEb,GAAG,CAACc,OAAO,CAACC;UACtB,CAAC,CAAC;QAAA;QAAA;UAAA,OAAAX,QAAA,CAAAY,IAAA;MAAA;IAAA,GAAAjB,OAAA;EAAA,CAET;EAAA,OAAAN,WAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,IAAMsB,cAAsC,IAAAC,eAAA,WAAAC,wBAAA,EAAAD,eAAA,EACvC,WAAW,EAAG,YAAY,OAAAC,wBAAA,EAAAD,eAAA,EAC1B,4BAA4B,EAAG,gCAAgC,GAAAA,eAAA,CACnE;AAAC,SAEaX,cAAcA,CAAAa,GAAA,EAAAC,GAAA;EAAA,OAAAC,eAAA,CAAA5B,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAA2B,gBAAA;EAAAA,eAAA,OAAA1B,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAA7B,SAAAyB,SAA8BvB,GAAY,EAAEC,GAAa;IAAA,IAAAS,GAAA,EAAAE,KAAA,EAAAY,WAAA,EAAAC,OAAA,EAAAC,OAAA,EAAAC,WAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAC,IAAA,EAAAC,WAAA,EAAAC,YAAA;IAAA,OAAAnC,oBAAA,CAAAK,IAAA,UAAA+B,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA7B,IAAA,GAAA6B,SAAA,CAAA5B,IAAA;QAAA;UAC9CI,GAAG,GAAWV,GAAG,CAAjBU,GAAG,EAAEE,KAAK,GAAIZ,GAAG,CAAZY,KAAK;UAAAY,WAAA,GACUxB,GAAG,CAACmC,MAAM,EAA9BV,OAAO,GAAAD,WAAA,CAAPC,OAAO,EAAEC,OAAO,GAAAF,WAAA,CAAPE,OAAO;UAEjBC,WAAW,GAAGV,cAAc,CAACQ,OAAO,CAAC;UAAA,IACtCE,WAAW;YAAAO,SAAA,CAAA5B,IAAA;YAAA;UAAA;UAAA,MACN,IAAI8B,KAAK,CAAC,oBAAoB,GAAGX,OAAO,CAAC;QAAA;UAG7CG,MAAM,GAAG,IAAAS,iBAAA,EAAUzB,KAAK,CAAC,GAAG,EAAE,OAAA0B,MAAA,CAAOC,WAAE,CAACC,SAAS,CAAC5B,KAAK,CAAC,CAAE;UAAAsB,SAAA,CAAA7B,IAAA;UAI5DwB,GAAG,GAAG,IAAAY,gCAAiB,EAACf,OAAO,EAAE1B,GAAG,CAAC;UAACkC,SAAA,CAAA5B,IAAA;UAAA;QAAA;UAAA4B,SAAA,CAAA7B,IAAA;UAAA6B,SAAA,CAAA1B,EAAA,GAAA0B,SAAA;UAAA,OAAAA,SAAA,CAAAQ,MAAA,WAE/B,IAAAjC,sBAAe,EAACT,GAAG,CAACU,GAAG,EAAET,GAAG,EAAE,GAAG,EAAAiC,SAAA,CAAA1B,EAAG,CAAC;QAAA;UAAAsB,IAAA,GAGZD,GAAG,EAAhCE,WAAW,GAAAD,IAAA,CAAXC,WAAW,EAAEC,YAAY,GAAAF,IAAA,CAAZE,YAAY;UAAA,OAAAE,SAAA,CAAAQ,MAAA,WAEzBC,cAAK,CACPC,OAAO,CAAC;YACLC,GAAG,KAAAP,MAAA,CAAKN,YAAY,EAAAM,MAAA,CAAGX,WAAW,EAAAW,MAAA,CAAGV,MAAM,CAAE;YAC7CjB,MAAM,EAAEX,GAAG,CAACW,MAAa;YACzBG,OAAO,MAAAgC,sBAAA,MAAAA,sBAAA,MAAAA,sBAAA,MAAMpC,GAAG,CAACqC,WAAW,CAAC,CAAC,GAAKhB,WAAW;cAAE,iBAAiB,EAAE;YAAM,EAAC;YAC1EiB,IAAI,EAAEhD,GAAG,CAACiD,IAAI;YACdC,OAAO,EAAE,MAAM;YACfC,YAAY,EAAE;UAClB,CAAC,CAAC,CACDC,IAAI;YAAA,IAAAC,IAAA,OAAAzD,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAAC,SAAAwD,SAAOC,QAAQ;cAAA,IAAAC,SAAA;cAAA,OAAA3D,oBAAA,CAAAK,IAAA,UAAAuD,UAAAC,SAAA;gBAAA,kBAAAA,SAAA,CAAArD,IAAA,GAAAqD,SAAA,CAAApD,IAAA;kBAAA;oBAAAoD,SAAA,CAAApD,IAAA;oBAAA,OACO,IAAAqD,wBAAiB,EAACjD,GAAG,EAAET,GAAG,EAAEsD,QAAQ,CAAC;kBAAA;oBAAvDC,SAAS,GAAAE,SAAA,CAAAE,IAAA;oBAAA,IACVJ,SAAS;sBAAAE,SAAA,CAAApD,IAAA;sBAAA;oBAAA;oBAAA,MACJ,IAAI8B,KAAK,CAACyB,qCAA8B,CAAC;kBAAA;kBAAA;oBAAA,OAAAH,SAAA,CAAA1C,IAAA;gBAAA;cAAA,GAAAsC,QAAA;YAAA,CAEtD;YAAA,iBAAAQ,GAAA;cAAA,OAAAT,IAAA,CAAA3D,KAAA,OAAAC,SAAA;YAAA;UAAA,IAAC;QAAA;QAAA;UAAA,OAAAuC,SAAA,CAAAlB,IAAA;MAAA;IAAA,GAAAO,QAAA;EAAA,CACT;EAAA,OAAAD,eAAA,CAAA5B,KAAA,OAAAC,SAAA;AAAA"}
1
+ {"version":3,"names":["_axios","_interopRequireDefault","require","_qs","_utils","_requestsSetup","obj","__esModule","default","ytProxyApi","_x","_x2","_ytProxyApi","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","wrap","_callee$","_context","prev","next","ytProxyApiImpl","t0","sendAndLogError","ctx","method","query","page","headers","referer","stop","ALLOWED_ACTION","_ALLOWED_ACTION","_defineProperty","_x3","_x4","_ytProxyApiImpl","_callee3","_req$params","command","ytAuthCluster","proxyAction","search","cfg","_cfg","authHeaders","proxyBaseUrl","_callee3$","_context3","params","Error","_isEmpty","concat","qs","stringify","getUserYTApiSetup","abrupt","axios","request","url","_objectSpread","getMetadata","data","body","timeout","responseType","then","_ref","_callee2","response","pipedSize","_callee2$","_context2","pipeAxiosResponse","sent","UNEXPECTED_PIPE_AXIOS_RESPONSE","_x5"],"sources":["yt-proxy-api.ts"],"sourcesContent":["import _ from 'lodash';\nimport axios from 'axios';\nimport qs from 'qs';\n\nimport type {Request, Response} from 'express';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\nimport {getUserYTApiSetup} from '../components/requestsSetup';\n\nexport async function ytProxyApi(req: Request, res: Response) {\n try {\n await ytProxyApiImpl(req, res);\n } catch (e: any) {\n await sendAndLogError(req.ctx, res, 500, e, {\n method: 'nodejs',\n query: req.query,\n page: req.headers.referer,\n });\n }\n}\n\nconst ALLOWED_ACTION: Record<string, string> = {\n ['hosts-all']: '/hosts/all',\n ['internal-discover_versions']: '/internal/discover_versions/v2',\n};\n\nasync function ytProxyApiImpl(req: Request, res: Response) {\n const {ctx, query} = req;\n const {command, ytAuthCluster} = req.params;\n\n const proxyAction = ALLOWED_ACTION[command];\n if (!proxyAction) {\n throw new Error('Unexpected action ' + command);\n }\n\n const search = _.isEmpty(query) ? '' : `?${qs.stringify(query)}`;\n\n let cfg;\n try {\n cfg = getUserYTApiSetup(ytAuthCluster, req);\n } catch (e: any) {\n return sendAndLogError(req.ctx, res, 400, e);\n }\n\n const {authHeaders, proxyBaseUrl} = cfg;\n\n return axios\n .request({\n url: `${proxyBaseUrl}${proxyAction}${search}`,\n method: req.method as any,\n headers: {...ctx.getMetadata(), ...authHeaders, 'accept-encoding': 'gzip'},\n data: req.body,\n timeout: 100000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(ctx, res, response);\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n });\n}\n"],"mappings":"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"}
@@ -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 +1 @@
1
- {"version":3,"names":["_path","_interopRequireDefault","require","_nodekit","_expresskit","_configureApp","_ytAuth","_routes","_oauth","_authorization","_authorization2","obj","__esModule","default","nodekit","NodeKit","configsPath","path","resolve","__dirname","_nodekit$config","config","appName","appEnv","appInstallation","appDevMode","ctx","log","_nodekit$config2","ytAuthCluster","appAuthHandler","fail","Error","appBeforeAuthMiddleware","concat","_toConsumableArray","authorizationResolver","createOAuthAuthorizationResolver","createYTAuthorizationResolver","createAuthMiddleware","_nodekit$config$adjus","_nodekit$config3","adjustAppConfig","call","app","ExpressKit","routes","configureApp","main","module","run","_default","exports"],"sources":["index.ts"],"sourcesContent":["import path from 'path';\nimport _reduce from 'lodash/reduce';\nimport {NodeKit} from '@gravity-ui/nodekit';\nimport {ExpressKit} from '@gravity-ui/expresskit';\n\nimport {configureApp} from './configure-app';\n\nimport {createYTAuthorizationResolver} from './middlewares/yt-auth';\nimport routes from './routes';\nimport {createOAuthAuthorizationResolver} from './middlewares/oauth';\nimport {createAuthMiddleware} from './middlewares/authorization';\nimport {authorizationResolver} from './utils/authorization';\n\nconst nodekit = new NodeKit({configsPath: path.resolve(__dirname, './configs')});\n\nconst {appName, appEnv, appInstallation, appDevMode} = nodekit.config;\nnodekit.ctx.log('AppConfig details', {\n appName,\n appEnv,\n appInstallation,\n appDevMode,\n});\n\nconst {ytAuthCluster, appAuthHandler} = nodekit.config;\n\nif (ytAuthCluster) {\n if (appAuthHandler) {\n nodekit.ctx.fail(\n new Error(\n '\"appAuthHandler\" option will be ignored cause \"ytAuthCluster\" option is provided.',\n ),\n );\n }\n\n nodekit.config.appBeforeAuthMiddleware = [\n ...(nodekit.config.appBeforeAuthMiddleware || []),\n authorizationResolver(createOAuthAuthorizationResolver()),\n authorizationResolver(createYTAuthorizationResolver()),\n ];\n nodekit.config.appAuthHandler = createAuthMiddleware(ytAuthCluster);\n}\n\nnodekit.config.adjustAppConfig?.(nodekit);\n\nconst app = new ExpressKit(nodekit, routes);\nconfigureApp(app);\n\nif (require.main === module) {\n app.run();\n}\n\nexport default app;\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;AAA2D,SAAAD,uBAAAU,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;AAE3D,IAAMG,OAAO,GAAG,IAAIC,gBAAO,CAAC;EAACC,WAAW,EAAEC,aAAI,CAACC,OAAO,CAACC,SAAS,EAAE,WAAW;AAAC,CAAC,CAAC;AAEhF,IAAAC,eAAA,GAAuDN,OAAO,CAACO,MAAM;EAA9DC,OAAO,GAAAF,eAAA,CAAPE,OAAO;EAAEC,MAAM,GAAAH,eAAA,CAANG,MAAM;EAAEC,eAAe,GAAAJ,eAAA,CAAfI,eAAe;EAAEC,UAAU,GAAAL,eAAA,CAAVK,UAAU;AACnDX,OAAO,CAACY,GAAG,CAACC,GAAG,CAAC,mBAAmB,EAAE;EACjCL,OAAO,EAAPA,OAAO;EACPC,MAAM,EAANA,MAAM;EACNC,eAAe,EAAfA,eAAe;EACfC,UAAU,EAAVA;AACJ,CAAC,CAAC;AAEF,IAAAG,gBAAA,GAAwCd,OAAO,CAACO,MAAM;EAA/CQ,aAAa,GAAAD,gBAAA,CAAbC,aAAa;EAAEC,cAAc,GAAAF,gBAAA,CAAdE,cAAc;AAEpC,IAAID,aAAa,EAAE;EACf,IAAIC,cAAc,EAAE;IAChBhB,OAAO,CAACY,GAAG,CAACK,IAAI,CACZ,IAAIC,KAAK,CACL,mFACJ,CACJ,CAAC;EACL;EAEAlB,OAAO,CAACO,MAAM,CAACY,uBAAuB,MAAAC,MAAA,KAAAC,2BAAA,EAC9BrB,OAAO,CAACO,MAAM,CAACY,uBAAuB,IAAI,EAAE,IAChD,IAAAG,qCAAqB,EAAC,IAAAC,uCAAgC,EAAC,CAAC,CAAC,EACzD,IAAAD,qCAAqB,EAAC,IAAAE,qCAA6B,EAAC,CAAC,CAAC,EACzD;EACDxB,OAAO,CAACO,MAAM,CAACS,cAAc,GAAG,IAAAS,mCAAoB,EAACV,aAAa,CAAC;AACvE;AAEA,CAAAW,qBAAA,IAAAC,gBAAA,GAAA3B,OAAO,CAACO,MAAM,EAACqB,eAAe,cAAAF,qBAAA,eAA9BA,qBAAA,CAAAG,IAAA,CAAAF,gBAAA,EAAiC3B,OAAO,CAAC;AAEzC,IAAM8B,GAAG,GAAG,IAAIC,sBAAU,CAAC/B,OAAO,EAAEgC,eAAM,CAAC;AAC3C,IAAAC,0BAAY,EAACH,GAAG,CAAC;AAEjB,IAAI1C,OAAO,CAAC8C,IAAI,KAAKC,MAAM,EAAE;EACzBL,GAAG,CAACM,GAAG,CAAC,CAAC;AACb;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAvC,OAAA,GAEe+B,GAAG"}
1
+ {"version":3,"names":["_path","_interopRequireDefault","require","_nodekit","_expresskit","_configureApp","_ytAuth","_routes","_oauth","_authorization","_authorization2","obj","__esModule","default","nodekit","NodeKit","configsPath","path","resolve","__dirname","_nodekit$config","config","appName","appEnv","appInstallation","appDevMode","ctx","log","_nodekit$config2","allowPasswordAuth","ytOAuthSettings","authMiddlewares","push","authorizationResolver","createOAuthAuthorizationResolver","createYTAuthorizationResolver","length","appBeforeAuthMiddleware","concat","_toConsumableArray","appAuthHandler","createAuthMiddleware","_nodekit$config$adjus","_nodekit$config3","adjustAppConfig","call","app","ExpressKit","routes","configureApp","main","module","run","_default","exports"],"sources":["index.ts"],"sourcesContent":["import path from 'path';\nimport _reduce from 'lodash/reduce';\nimport {NodeKit} from '@gravity-ui/nodekit';\nimport {ExpressKit} from '@gravity-ui/expresskit';\n\nimport {configureApp} from './configure-app';\n\nimport {createYTAuthorizationResolver} from './middlewares/yt-auth';\nimport routes from './routes';\nimport {createOAuthAuthorizationResolver} from './middlewares/oauth';\nimport {createAuthMiddleware} from './middlewares/authorization';\nimport {authorizationResolver} from './utils/authorization';\n\nconst nodekit = new NodeKit({configsPath: path.resolve(__dirname, './configs')});\n\nconst {appName, appEnv, appInstallation, appDevMode} = nodekit.config;\nnodekit.ctx.log('AppConfig details', {\n appName,\n appEnv,\n appInstallation,\n appDevMode,\n});\n\nconst {allowPasswordAuth, ytOAuthSettings} = nodekit.config;\n\nconst authMiddlewares = [];\n\nif (ytOAuthSettings) {\n authMiddlewares.push(authorizationResolver(createOAuthAuthorizationResolver()));\n}\n\nif (allowPasswordAuth) {\n authMiddlewares.push(authorizationResolver(createYTAuthorizationResolver()));\n}\n\nif (authMiddlewares.length) {\n nodekit.config.appBeforeAuthMiddleware = [\n ...(nodekit.config.appBeforeAuthMiddleware || []),\n ...authMiddlewares,\n ];\n\n nodekit.config.appAuthHandler = createAuthMiddleware();\n}\n\nnodekit.config.adjustAppConfig?.(nodekit);\n\nconst app = new ExpressKit(nodekit, routes);\nconfigureApp(app);\n\nif (require.main === module) {\n app.run();\n}\n\nexport default app;\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;AAA2D,SAAAD,uBAAAU,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;AAE3D,IAAMG,OAAO,GAAG,IAAIC,gBAAO,CAAC;EAACC,WAAW,EAAEC,aAAI,CAACC,OAAO,CAACC,SAAS,EAAE,WAAW;AAAC,CAAC,CAAC;AAEhF,IAAAC,eAAA,GAAuDN,OAAO,CAACO,MAAM;EAA9DC,OAAO,GAAAF,eAAA,CAAPE,OAAO;EAAEC,MAAM,GAAAH,eAAA,CAANG,MAAM;EAAEC,eAAe,GAAAJ,eAAA,CAAfI,eAAe;EAAEC,UAAU,GAAAL,eAAA,CAAVK,UAAU;AACnDX,OAAO,CAACY,GAAG,CAACC,GAAG,CAAC,mBAAmB,EAAE;EACjCL,OAAO,EAAPA,OAAO;EACPC,MAAM,EAANA,MAAM;EACNC,eAAe,EAAfA,eAAe;EACfC,UAAU,EAAVA;AACJ,CAAC,CAAC;AAEF,IAAAG,gBAAA,GAA6Cd,OAAO,CAACO,MAAM;EAApDQ,iBAAiB,GAAAD,gBAAA,CAAjBC,iBAAiB;EAAEC,eAAe,GAAAF,gBAAA,CAAfE,eAAe;AAEzC,IAAMC,eAAe,GAAG,EAAE;AAE1B,IAAID,eAAe,EAAE;EACjBC,eAAe,CAACC,IAAI,CAAC,IAAAC,qCAAqB,EAAC,IAAAC,uCAAgC,EAAC,CAAC,CAAC,CAAC;AACnF;AAEA,IAAIL,iBAAiB,EAAE;EACnBE,eAAe,CAACC,IAAI,CAAC,IAAAC,qCAAqB,EAAC,IAAAE,qCAA6B,EAAC,CAAC,CAAC,CAAC;AAChF;AAEA,IAAIJ,eAAe,CAACK,MAAM,EAAE;EACxBtB,OAAO,CAACO,MAAM,CAACgB,uBAAuB,MAAAC,MAAA,KAAAC,2BAAA,EAC9BzB,OAAO,CAACO,MAAM,CAACgB,uBAAuB,IAAI,EAAE,GAC7CN,eAAe,CACrB;EAEDjB,OAAO,CAACO,MAAM,CAACmB,cAAc,GAAG,IAAAC,mCAAoB,EAAC,CAAC;AAC1D;AAEA,CAAAC,qBAAA,IAAAC,gBAAA,GAAA7B,OAAO,CAACO,MAAM,EAACuB,eAAe,cAAAF,qBAAA,eAA9BA,qBAAA,CAAAG,IAAA,CAAAF,gBAAA,EAAiC7B,OAAO,CAAC;AAEzC,IAAMgC,GAAG,GAAG,IAAIC,sBAAU,CAACjC,OAAO,EAAEkC,eAAM,CAAC;AAC3C,IAAAC,0BAAY,EAACH,GAAG,CAAC;AAEjB,IAAI5C,OAAO,CAACgD,IAAI,KAAKC,MAAM,EAAE;EACzBL,GAAG,CAACM,GAAG,CAAC,CAAC;AACb;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAzC,OAAA,GAEeiC,GAAG"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_authorization","_requestsSetup","_clusterQueries","_utils","obj","__esModule","default","AuthError","_Error","_inherits","_super","_createSuper","_classCallCheck","call","_createClass","_wrapNativeSuper","Error","isAuthError","e","_e$response","axios","isAxiosError","response","status","createAuthMiddleware","ytAuthCluster","_authMiddleware","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","next","cfg","_yield$getXSRFToken","login","isAuthFailed","error","wrap","_callee$","_context","prev","isAuthorized","getUserYTApiSetup","getXSRFToken","sent","yt","t0","undefined","routeInfo","ui","sendError","abrupt","stop","authMiddleware","_x","_x2","_x3","apply","arguments"],"sources":["authorization.ts"],"sourcesContent":["import axios from 'axios';\nimport {isAuthorized} from '../utils/authorization';\nimport {getUserYTApiSetup} from '../components/requestsSetup';\nimport {AppMiddleware} from '@gravity-ui/expresskit';\nimport {getXSRFToken} from '../components/cluster-queries';\nimport {sendError} from '../utils';\n\nclass AuthError extends Error {\n constructor() {\n super('Authorization required');\n }\n}\n\nfunction isAuthError(e: unknown) {\n return e instanceof AuthError || (axios.isAxiosError(e) && e.response?.status === 401);\n}\n\nexport function createAuthMiddleware(ytAuthCluster: string): AppMiddleware {\n return async function authMiddleware(req, res, next) {\n try {\n if (!isAuthorized(req)) {\n throw new AuthError();\n }\n\n const cfg = getUserYTApiSetup(ytAuthCluster, req);\n const {login} = await getXSRFToken(req, cfg);\n req.yt.login = login;\n } catch (e) {\n const isAuthFailed = isAuthError(e);\n const error = isAuthFailed ? undefined : e;\n\n if (!req.routeInfo.ui && isAuthFailed) {\n sendError(res, error, 401);\n return;\n }\n }\n\n next();\n };\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAAkC,SAAAD,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAC,IAE7BG,SAAS,0BAAAC,MAAA;EAAA,IAAAC,kBAAA,EAAAF,SAAA,EAAAC,MAAA;EAAA,IAAAE,MAAA,OAAAC,qBAAA,EAAAJ,SAAA;EACX,SAAAA,UAAA,EAAc;IAAA,IAAAK,wBAAA,QAAAL,SAAA;IAAA,OAAAG,MAAA,CAAAG,IAAA,OACJ,wBAAwB;EAClC;EAAC,WAAAC,qBAAA,EAAAP,SAAA;AAAA,oBAAAQ,yBAAA,EAHmBC,KAAK;AAM7B,SAASC,WAAWA,CAACC,CAAU,EAAE;EAAA,IAAAC,WAAA;EAC7B,OAAOD,CAAC,YAAYX,SAAS,IAAKa,cAAK,CAACC,YAAY,CAACH,CAAC,CAAC,IAAI,EAAAC,WAAA,GAAAD,CAAC,CAACI,QAAQ,cAAAH,WAAA,uBAAVA,WAAA,CAAYI,MAAM,MAAK,GAAI;AAC1F;AAEO,SAASC,oBAAoBA,CAACC,aAAqB,EAAiB;EACvE;IAAA,IAAAC,eAAA,OAAAC,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAAO,SAAAC,QAA8BC,GAAG,EAAEC,GAAG,EAAEC,IAAI;MAAA,IAAAC,GAAA,EAAAC,mBAAA,EAAAC,KAAA,EAAAC,YAAA,EAAAC,KAAA;MAAA,OAAAV,oBAAA,CAAAW,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAR,IAAA;UAAA;YAAAQ,QAAA,CAAAC,IAAA;YAAA,IAEtC,IAAAC,2BAAY,EAACZ,GAAG,CAAC;cAAAU,QAAA,CAAAR,IAAA;cAAA;YAAA;YAAA,MACZ,IAAI1B,SAAS,CAAC,CAAC;UAAA;YAGnB2B,GAAG,GAAG,IAAAU,gCAAiB,EAACnB,aAAa,EAAEM,GAAG,CAAC;YAAAU,QAAA,CAAAR,IAAA;YAAA,OAC3B,IAAAY,4BAAY,EAACd,GAAG,EAAEG,GAAG,CAAC;UAAA;YAAAC,mBAAA,GAAAM,QAAA,CAAAK,IAAA;YAArCV,KAAK,GAAAD,mBAAA,CAALC,KAAK;YACZL,GAAG,CAACgB,EAAE,CAACX,KAAK,GAAGA,KAAK;YAACK,QAAA,CAAAR,IAAA;YAAA;UAAA;YAAAQ,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAO,EAAA,GAAAP,QAAA;YAEfJ,YAAY,GAAGpB,WAAW,CAAAwB,QAAA,CAAAO,EAAE,CAAC;YAC7BV,KAAK,GAAGD,YAAY,GAAGY,SAAS,GAAAR,QAAA,CAAAO,EAAI;YAAA,MAEtC,CAACjB,GAAG,CAACmB,SAAS,CAACC,EAAE,IAAId,YAAY;cAAAI,QAAA,CAAAR,IAAA;cAAA;YAAA;YACjC,IAAAmB,gBAAS,EAACpB,GAAG,EAAEM,KAAK,EAAE,GAAG,CAAC;YAAC,OAAAG,QAAA,CAAAY,MAAA;UAAA;YAKnCpB,IAAI,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAQ,QAAA,CAAAa,IAAA;QAAA;MAAA,GAAAxB,OAAA;IAAA,CACV;IAAA,SApBqByB,cAAcA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAhC,eAAA,CAAAiC,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAdL,cAAc;EAAA;AAqBxC"}
1
+ {"version":3,"names":["_axios","_interopRequireDefault","require","_authorization","_requestsSetup","_clusterQueries","_utils","obj","__esModule","default","AuthError","_Error","_inherits","_super","_createSuper","_classCallCheck","call","_createClass","_wrapNativeSuper","Error","isAuthError","e","_e$response","axios","isAxiosError","response","status","createAuthMiddleware","_authMiddleware","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","next","ytAuthCluster","cfg","_yield$getXSRFToken","login","isAuthFailed","error","wrap","_callee$","_context","prev","params","isAuthorized","getUserYTApiSetup","getXSRFToken","sent","yt","t0","extraData","routeInfo","ui","sendError","abrupt","stop","authMiddleware","_x","_x2","_x3","apply","arguments"],"sources":["authorization.ts"],"sourcesContent":["import axios from 'axios';\nimport {isAuthorized} from '../utils/authorization';\nimport {getUserYTApiSetup} from '../components/requestsSetup';\nimport {AppMiddleware} from '@gravity-ui/expresskit';\nimport {getXSRFToken} from '../components/cluster-queries';\nimport {sendError} from '../utils';\n\nclass AuthError extends Error {\n constructor() {\n super('Authorization required');\n }\n}\n\nfunction isAuthError(e: unknown) {\n return e instanceof AuthError || (axios.isAxiosError(e) && e.response?.status === 401);\n}\n\nexport function createAuthMiddleware(): AppMiddleware {\n return async function authMiddleware(req, res, next) {\n const {ytAuthCluster} = req.params;\n\n try {\n if (!isAuthorized(req)) {\n throw new AuthError();\n }\n\n const cfg = getUserYTApiSetup(ytAuthCluster, req);\n const {login} = await getXSRFToken(req, cfg);\n req.yt.login = login;\n } catch (e) {\n const isAuthFailed = isAuthError(e);\n const error = isAuthFailed ? {extraData: {ytAuthCluster}} : e;\n\n if (!req.routeInfo.ui && isAuthFailed) {\n sendError(res, error, 401);\n return;\n }\n }\n\n next();\n };\n}\n"],"mappings":"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"}
@@ -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};`,
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_interopRequireDefault","obj","__esModule","default","createYTAuthorizationResolver","_resoleOAuthAuthorize","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","_","next","secret","wrap","_callee$","_context","prev","cookies","YT_CYPRESS_COOKIE_NAME","yt","ytApiAuthHeaders","Cookie","concat","stop","resoleOAuthAuthorize","_x","_x2","_x3","apply","arguments"],"sources":["yt-auth.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport {AppMiddleware} from '@gravity-ui/expresskit';\nimport {YT_CYPRESS_COOKIE_NAME} from '../../shared/constants';\n\nexport function createYTAuthorizationResolver(): AppMiddleware {\n return async function resoleOAuthAuthorize(req: Request, _: Response, next) {\n const secret: string = req.cookies[YT_CYPRESS_COOKIE_NAME];\n req.yt = {\n ytApiAuthHeaders: {\n Cookie: `${YT_CYPRESS_COOKIE_NAME}=${secret};`,\n },\n };\n next();\n };\n}\n"],"mappings":";;;;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AAA6D,SAAAC,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEtD,SAASG,6BAA6BA,CAAA,EAAkB;EAC3D;IAAA,IAAAC,qBAAA,OAAAC,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAAO,SAAAC,QAAoCC,GAAY,EAAEC,CAAW,EAAEC,IAAI;MAAA,IAAAC,MAAA;MAAA,OAAAN,oBAAA,CAAAO,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAJ,IAAA;UAAA;YAChEC,MAAc,GAAGH,GAAG,CAACQ,OAAO,CAACC,iCAAsB,CAAC;YAC1DT,GAAG,CAACU,EAAE,GAAG;cACLC,gBAAgB,EAAE;gBACdC,MAAM,KAAAC,MAAA,CAAKJ,iCAAsB,OAAAI,MAAA,CAAIV,MAAM;cAC/C;YACJ,CAAC;YACDD,IAAI,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAI,QAAA,CAAAQ,IAAA;QAAA;MAAA,GAAAf,OAAA;IAAA,CACV;IAAA,SARqBgB,oBAAoBA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAvB,qBAAA,CAAAwB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAApBL,oBAAoB;EAAA;AAS9C"}
1
+ {"version":3,"names":["_constants","require","_interopRequireDefault","obj","__esModule","default","createYTAuthorizationResolver","_resolveYTAuthorization","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","_","next","ytAuthCluster","secret","wrap","_callee$","_context","prev","params","cookies","concat","YT_CYPRESS_COOKIE_NAME","yt","ytApiAuthHeaders","Cookie","stop","resolveYTAuthorization","_x","_x2","_x3","apply","arguments"],"sources":["yt-auth.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport {AppMiddleware} from '@gravity-ui/expresskit';\nimport {YT_CYPRESS_COOKIE_NAME} from '../../shared/constants';\n\nexport function createYTAuthorizationResolver(): AppMiddleware {\n return async function resolveYTAuthorization(req: Request, _: Response, next) {\n const {ytAuthCluster} = req.params;\n\n const secret: string = req.cookies[`${ytAuthCluster}:${YT_CYPRESS_COOKIE_NAME}`];\n\n req.yt = {\n ytApiAuthHeaders: {\n Cookie: `${YT_CYPRESS_COOKIE_NAME}=${secret};`,\n },\n };\n\n next();\n };\n}\n"],"mappings":";;;;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AAA6D,SAAAC,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEtD,SAASG,6BAA6BA,CAAA,EAAkB;EAC3D;IAAA,IAAAC,uBAAA,OAAAC,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAAO,SAAAC,QAAsCC,GAAY,EAAEC,CAAW,EAAEC,IAAI;MAAA,IAAAC,aAAA,EAAAC,MAAA;MAAA,OAAAP,oBAAA,CAAAQ,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAL,IAAA;UAAA;YACjEC,aAAa,GAAIH,GAAG,CAACS,MAAM,CAA3BN,aAAa;YAEdC,MAAc,GAAGJ,GAAG,CAACU,OAAO,IAAAC,MAAA,CAAIR,aAAa,OAAAQ,MAAA,CAAIC,iCAAsB,EAAG;YAEhFZ,GAAG,CAACa,EAAE,GAAG;cACLC,gBAAgB,EAAE;gBACdC,MAAM,KAAAJ,MAAA,CAAKC,iCAAsB,OAAAD,MAAA,CAAIP,MAAM;cAC/C;YACJ,CAAC;YAEDF,IAAI,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAK,QAAA,CAAAS,IAAA;QAAA;MAAA,GAAAjB,OAAA;IAAA,CACV;IAAA,SAZqBkB,sBAAsBA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAzB,uBAAA,CAAA0B,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAtBL,sBAAsB;EAAA;AAahD"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"names":["_expresskit","require","_clusterParams","_ytApi","_remoteCopy","_ytProxyApi","_settings","_home","_clusterInfo","_clusters","_tableColumnPreset","_ping","_login","_schedulingPools","_markdownToHtml","_odinProxyApi","_availability","_chytApi","_oauthLogin","_logout","HOME_INDEX_TARGET","handler","homeIndex","ui","routes","ping","authPolicy","AuthPolicy","disabled","handleClusterInfo","clusterParams","clusterVersions","getClusterPools","handleLogin","handleLogout","oauthLogin","oauthCallback","oauthLogout","handleChangePassword","handleRemoteCopy","markdownToHtmlHandler","ytTvmApiHandler","ytProxyApi","odinProxyApi","getClustersAvailability","chytProxyApi","settingsGet","settingsCreate","settingsGetItem","settingsSetItem","settingsDeleteItem","tableColumnPresetGet","tableColumnPresetSave","homeRedirect","_default","exports","default"],"sources":["routes.ts"],"sourcesContent":["import {AppRouteDescription, AppRoutes, AuthPolicy} from '@gravity-ui/expresskit';\nimport {clusterParams} from './controllers/cluster-params';\nimport {ytTvmApiHandler} from './controllers/yt-api';\nimport {handleRemoteCopy} from './controllers/remote-copy';\nimport {ytProxyApi} from './controllers/yt-proxy-api';\nimport {\n settingsCreate,\n settingsDeleteItem,\n settingsGet,\n settingsGetItem,\n settingsSetItem,\n} from './controllers/settings';\nimport {homeIndex, homeRedirect} from './controllers/home';\nimport {handleClusterInfo} from './controllers/cluster-info';\n\nimport {clusterVersions} from './controllers/clusters';\nimport {tableColumnPresetGet, tableColumnPresetSave} from './controllers/table-column-preset';\nimport {ping} from './controllers/ping';\nimport {handleChangePassword, handleLogin} from './controllers/login';\nimport {getClusterPools} from './controllers/scheduling-pools';\nimport {markdownToHtmlHandler} from './controllers/markdown-to-html';\nimport {odinProxyApi} from './controllers/odin-proxy-api';\nimport {getClustersAvailability} from './controllers/availability';\nimport {chytProxyApi} from './controllers/chyt-api';\nimport {oauthCallback, oauthLogin, oauthLogout} from './controllers/oauth-login';\nimport {handleLogout} from './controllers/logout';\n\nconst HOME_INDEX_TARGET: AppRouteDescription = {handler: homeIndex, ui: true};\n\nconst routes: AppRoutes = {\n 'GET /change-password/': HOME_INDEX_TARGET,\n 'GET /': HOME_INDEX_TARGET,\n 'GET /ping': {handler: ping, authPolicy: AuthPolicy.disabled},\n 'GET /api/cluster-info/:cluster': {handler: handleClusterInfo},\n 'GET /api/cluster-params/:cluster': {handler: clusterParams},\n 'GET /api/clusters/versions': {handler: clusterVersions},\n 'GET /api/pool-names/:cluster': {handler: getClusterPools},\n 'POST /api/yt/login': {handler: handleLogin, ui: true},\n 'GET /api/yt/logout': {handler: handleLogout, ui: true},\n\n 'GET /oauth/login': {handler: oauthLogin, ui: true},\n 'GET /api/oauth/callback': {handler: oauthCallback, ui: true},\n 'GET /api/oauth/logout/callback': {handler: oauthLogout, ui: true},\n\n 'POST /api/yt/change-password': {handler: handleChangePassword, ui: true},\n 'POST /api/remote-copy': {handler: handleRemoteCopy},\n\n 'POST /api/markdown-to-html': {handler: markdownToHtmlHandler},\n\n 'GET /api/yt/:cluster/api/:version/:command': {handler: ytTvmApiHandler},\n 'POST /api/yt/:cluster/api/:version/:command': {handler: ytTvmApiHandler},\n 'PUT /api/yt/:cluster/api/:version/:command': {handler: ytTvmApiHandler},\n\n 'GET /api/yt-proxy/:cluster/:command': {handler: ytProxyApi},\n\n 'GET /api/odin/proxy/:action/:cluster?': {handler: odinProxyApi},\n 'GET /api/odin/clusters/availability': {handler: getClustersAvailability},\n\n 'POST /api/chyt/:cluster/:action': {handler: chytProxyApi},\n\n 'GET /api/settings/:username': {handler: settingsGet},\n 'POST /api/settings/:username': {handler: settingsCreate},\n 'GET /api/settings/:username/:path': {handler: settingsGetItem},\n 'PUT /api/settings/:username/:path': {handler: settingsSetItem},\n 'DELETE /api/settings/:username/:path': {handler: settingsDeleteItem},\n\n 'GET /api/table-column-preset/:hash': {\n handler: tableColumnPresetGet,\n },\n 'POST /api/table-column-preset': {handler: tableColumnPresetSave},\n\n 'GET /:cluster/': HOME_INDEX_TARGET,\n 'GET /:cluster/maintenance': {handler: homeRedirect},\n 'GET /:cluster/:page': HOME_INDEX_TARGET,\n 'GET /:cluster/:page/:tab': HOME_INDEX_TARGET,\n 'GET /:cluster/:page/:operation/:tab': HOME_INDEX_TARGET,\n 'GET /:cluster/:page/:operation/:job/:tab': HOME_INDEX_TARGET,\n};\n\nexport default routes;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_expresskit","require","_clusterParams","_ytApi","_remoteCopy","_ytProxyApi","_settings","_home","_clusterInfo","_clusters","_tableColumnPreset","_ping","_login","_schedulingPools","_markdownToHtml","_odinProxyApi","_availability","_chytApi","_oauthLogin","_logout","HOME_INDEX_TARGET","handler","homeIndex","ui","routes","ping","authPolicy","AuthPolicy","disabled","handleClusterInfo","clusterParams","clusterVersions","clusterAuthStatus","getClusterPools","handleLogin","handleLogout","oauthLogin","oauthCallback","oauthLogout","handleChangePassword","handleRemoteCopy","markdownToHtmlHandler","ytTvmApiHandler","ytProxyApi","odinProxyApi","getClustersAvailability","chytProxyApi","settingsGet","settingsCreate","settingsGetItem","settingsSetItem","settingsDeleteItem","tableColumnPresetGet","tableColumnPresetSave","homeRedirect","_default","exports","default"],"sources":["routes.ts"],"sourcesContent":["import {AppRouteDescription, AppRoutes, AuthPolicy} from '@gravity-ui/expresskit';\nimport {clusterParams} from './controllers/cluster-params';\nimport {ytTvmApiHandler} from './controllers/yt-api';\nimport {handleRemoteCopy} from './controllers/remote-copy';\nimport {ytProxyApi} from './controllers/yt-proxy-api';\nimport {\n settingsCreate,\n settingsDeleteItem,\n settingsGet,\n settingsGetItem,\n settingsSetItem,\n} from './controllers/settings';\nimport {homeIndex, homeRedirect} from './controllers/home';\nimport {handleClusterInfo} from './controllers/cluster-info';\n\nimport {clusterAuthStatus, clusterVersions} from './controllers/clusters';\nimport {tableColumnPresetGet, tableColumnPresetSave} from './controllers/table-column-preset';\nimport {ping} from './controllers/ping';\nimport {handleChangePassword, handleLogin} from './controllers/login';\nimport {getClusterPools} from './controllers/scheduling-pools';\nimport {markdownToHtmlHandler} from './controllers/markdown-to-html';\nimport {odinProxyApi} from './controllers/odin-proxy-api';\nimport {getClustersAvailability} from './controllers/availability';\nimport {chytProxyApi} from './controllers/chyt-api';\nimport {oauthCallback, oauthLogin, oauthLogout} from './controllers/oauth-login';\nimport {handleLogout} from './controllers/logout';\n\nconst HOME_INDEX_TARGET: AppRouteDescription = {handler: homeIndex, ui: true};\n\nconst routes: AppRoutes = {\n 'GET /:ytAuthCluster/change-password/': HOME_INDEX_TARGET,\n 'GET /': HOME_INDEX_TARGET,\n 'GET /ping': {handler: ping, authPolicy: AuthPolicy.disabled},\n 'GET /api/cluster-info/:ytAuthCluster': {handler: handleClusterInfo},\n 'GET /api/cluster-params/:ytAuthCluster': {handler: clusterParams},\n 'GET /api/clusters/versions': {handler: clusterVersions},\n 'GET /api/clusters/auth-status': {handler: clusterAuthStatus},\n 'GET /api/pool-names/:ytAuthCluster': {handler: getClusterPools},\n 'POST /api/yt/:ytAuthCluster/login': {handler: handleLogin, ui: true},\n 'GET /api/yt/logout': {handler: handleLogout, ui: true},\n\n 'GET /oauth/login': {handler: oauthLogin, ui: true},\n 'GET /api/oauth/callback': {handler: oauthCallback, ui: true},\n 'GET /api/oauth/logout/callback': {handler: oauthLogout, ui: true},\n\n 'POST /api/yt/:ytAuthCluster/change-password': {handler: handleChangePassword, ui: true},\n 'POST /api/remote-copy': {handler: handleRemoteCopy},\n\n 'POST /api/markdown-to-html': {handler: markdownToHtmlHandler},\n\n 'GET /api/yt/:ytAuthCluster/api/:version/:command': {handler: ytTvmApiHandler},\n 'POST /api/yt/:ytAuthCluster/api/:version/:command': {handler: ytTvmApiHandler},\n 'PUT /api/yt/:ytAuthCluster/api/:version/:command': {handler: ytTvmApiHandler},\n\n 'GET /api/yt-proxy/:ytAuthCluster/:command': {handler: ytProxyApi},\n\n 'GET /api/odin/proxy/:action/:ytAuthCluster?': {handler: odinProxyApi},\n 'GET /api/odin/clusters/availability': {handler: getClustersAvailability},\n\n 'POST /api/chyt/:ytAuthCluster/:action': {handler: chytProxyApi},\n\n 'GET /api/settings/:ytAuthCluster/:username': {handler: settingsGet},\n 'POST /api/settings/:ytAuthCluster/:username': {handler: settingsCreate},\n 'GET /api/settings/:ytAuthCluster/:username/:path': {handler: settingsGetItem},\n 'PUT /api/settings/:ytAuthCluster/:username/:path': {handler: settingsSetItem},\n 'DELETE /api/settings/:ytAuthCluster/:username/:path': {handler: settingsDeleteItem},\n\n 'GET /api/table-column-preset/:ytAuthCluster/:hash': {\n handler: tableColumnPresetGet,\n },\n 'POST /api/table-column-preset/:ytAuthCluster': {handler: tableColumnPresetSave},\n\n 'GET /:ytAuthCluster/': HOME_INDEX_TARGET,\n 'GET /:ytAuthCluster/maintenance': {handler: homeRedirect},\n 'GET /:ytAuthCluster/:page': HOME_INDEX_TARGET,\n 'GET /:ytAuthCluster/:page/:tab': HOME_INDEX_TARGET,\n 'GET /:ytAuthCluster/:page/:operation/:tab': HOME_INDEX_TARGET,\n 'GET /:ytAuthCluster/:page/:operation/:job/:tab': HOME_INDEX_TARGET,\n};\n\nexport default routes;\n"],"mappings":"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"}
@@ -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";