@ytsaurus/ui 1.16.1 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.md +6 -11
  2. package/build/cjs/@types/core.d.ts +7 -7
  3. package/build/cjs/server/components/layout-config.js +3 -3
  4. package/build/cjs/server/components/layout-config.js.map +1 -1
  5. package/build/cjs/server/components/requestsSetup.js +13 -5
  6. package/build/cjs/server/components/requestsSetup.js.map +1 -1
  7. package/build/cjs/server/components/settings.d.ts +10 -5
  8. package/build/cjs/server/components/settings.js +24 -23
  9. package/build/cjs/server/components/settings.js.map +1 -1
  10. package/build/cjs/server/components/table.d.ts +3 -3
  11. package/build/cjs/server/components/table.js +4 -4
  12. package/build/cjs/server/components/table.js.map +1 -1
  13. package/build/cjs/server/components/yt-auth.d.ts +0 -2
  14. package/build/cjs/server/components/yt-auth.js +5 -14
  15. package/build/cjs/server/components/yt-auth.js.map +1 -1
  16. package/build/cjs/server/configs/common.js +5 -13
  17. package/build/cjs/server/configs/common.js.map +1 -1
  18. package/build/cjs/server/configs/local.js +0 -5
  19. package/build/cjs/server/configs/local.js.map +1 -1
  20. package/build/cjs/server/controllers/chyt-api.js +1 -1
  21. package/build/cjs/server/controllers/chyt-api.js.map +1 -1
  22. package/build/cjs/server/controllers/cluster-info.js +2 -2
  23. package/build/cjs/server/controllers/cluster-info.js.map +1 -1
  24. package/build/cjs/server/controllers/cluster-params.js +1 -1
  25. package/build/cjs/server/controllers/cluster-params.js.map +1 -1
  26. package/build/cjs/server/controllers/clusters.d.ts +1 -0
  27. package/build/cjs/server/controllers/clusters.js +24 -1
  28. package/build/cjs/server/controllers/clusters.js.map +1 -1
  29. package/build/cjs/server/controllers/home.js +10 -6
  30. package/build/cjs/server/controllers/home.js.map +1 -1
  31. package/build/cjs/server/controllers/login.js +18 -5
  32. package/build/cjs/server/controllers/login.js.map +1 -1
  33. package/build/cjs/server/controllers/odin-proxy-api.js +1 -1
  34. package/build/cjs/server/controllers/odin-proxy-api.js.map +1 -1
  35. package/build/cjs/server/controllers/scheduling-pools.js +2 -2
  36. package/build/cjs/server/controllers/scheduling-pools.js.map +1 -1
  37. package/build/cjs/server/controllers/settings.js +10 -10
  38. package/build/cjs/server/controllers/settings.js.map +1 -1
  39. package/build/cjs/server/controllers/table-column-preset.js +4 -3
  40. package/build/cjs/server/controllers/table-column-preset.js.map +1 -1
  41. package/build/cjs/server/controllers/yt-api.js +1 -1
  42. package/build/cjs/server/controllers/yt-api.js.map +1 -1
  43. package/build/cjs/server/controllers/yt-proxy-api.js +2 -2
  44. package/build/cjs/server/controllers/yt-proxy-api.js.map +1 -1
  45. package/build/cjs/server/index.js +11 -8
  46. package/build/cjs/server/index.js.map +1 -1
  47. package/build/cjs/server/middlewares/authorization.d.ts +1 -1
  48. package/build/cjs/server/middlewares/authorization.js +3 -2
  49. package/build/cjs/server/middlewares/authorization.js.map +1 -1
  50. package/build/cjs/server/middlewares/yt-auth.js +3 -2
  51. package/build/cjs/server/middlewares/yt-auth.js.map +1 -1
  52. package/build/cjs/server/routes.js +26 -25
  53. package/build/cjs/server/routes.js.map +1 -1
  54. package/build/cjs/server/utils/index.d.ts +1 -1
  55. package/build/cjs/server/utils/index.js +12 -4
  56. package/build/cjs/server/utils/index.js.map +1 -1
  57. package/build/cjs/shared/yt-types.d.ts +1 -0
  58. package/build/cjs/ui/common/utils/settings-remote-provider.d.ts +5 -5
  59. package/build/cjs/ui/common/utils/settings-remote-provider.js +42 -16
  60. package/build/cjs/ui/common/utils/settings-remote-provider.js.map +1 -1
  61. package/build/cjs/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
  62. package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
  63. package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
  64. package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
  65. package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js +7 -4
  66. package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
  67. package/build/cjs/ui/config/ui-settings.d.ts +1 -0
  68. package/build/cjs/ui/config/ui-settings.js +3 -2
  69. package/build/cjs/ui/config/ui-settings.js.map +1 -1
  70. package/build/cjs/ui/constants/index.d.ts +7 -0
  71. package/build/cjs/ui/constants/index.js +3 -1
  72. package/build/cjs/ui/constants/index.js.map +1 -1
  73. package/build/cjs/ui/containers/App/App.js +4 -3
  74. package/build/cjs/ui/containers/App/App.js.map +1 -1
  75. package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
  76. package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
  77. package/build/cjs/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
  78. package/build/cjs/ui/containers/ClusterPage/ClusterPage.js +3 -1
  79. package/build/cjs/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
  80. package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
  81. package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
  82. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
  83. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js +11 -3
  84. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
  85. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
  86. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
  87. package/build/cjs/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
  88. package/build/cjs/ui/entries/main.js +4 -1
  89. package/build/cjs/ui/entries/main.js.map +1 -1
  90. package/build/cjs/ui/pages/operations/selectors.d.ts +5 -0
  91. package/build/cjs/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
  92. package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
  93. package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
  94. package/build/cjs/ui/pages/system/Chunks/Chunks.d.ts +1 -1
  95. package/build/cjs/ui/store/actions/cluster-params.d.ts +1 -0
  96. package/build/cjs/ui/store/actions/cluster-params.js +13 -0
  97. package/build/cjs/ui/store/actions/cluster-params.js.map +1 -1
  98. package/build/cjs/ui/store/actions/clusters-menu.d.ts +1 -0
  99. package/build/cjs/ui/store/actions/clusters-menu.js +22 -2
  100. package/build/cjs/ui/store/actions/clusters-menu.js.map +1 -1
  101. package/build/cjs/ui/store/actions/global/index.d.ts +3 -1
  102. package/build/cjs/ui/store/actions/global/index.js +19 -4
  103. package/build/cjs/ui/store/actions/global/index.js.map +1 -1
  104. package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
  105. package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
  106. package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
  107. package/build/cjs/ui/store/actions/navigation/content/table/table.js +2 -1
  108. package/build/cjs/ui/store/actions/navigation/content/table/table.js.map +1 -1
  109. package/build/cjs/ui/store/actions/settings/index.js +25 -19
  110. package/build/cjs/ui/store/actions/settings/index.js.map +1 -1
  111. package/build/cjs/ui/store/reducers/accounts/usage/index.d.ts +1 -1
  112. package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
  113. package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js +8 -0
  114. package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
  115. package/build/cjs/ui/store/reducers/index.d.ts +5 -0
  116. package/build/cjs/ui/store/reducers/index.js.map +1 -1
  117. package/build/cjs/ui/store/reducers/settings.js +1 -1
  118. package/build/cjs/ui/store/reducers/settings.js.map +1 -1
  119. package/build/cjs/ui/store/selectors/accounts/account-usage.d.ts +40 -0
  120. package/build/cjs/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
  121. package/build/cjs/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
  122. package/build/cjs/ui/store/selectors/chyt/index.d.ts +35 -0
  123. package/build/cjs/ui/store/selectors/components/node/memory.d.ts +35 -0
  124. package/build/cjs/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
  125. package/build/cjs/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
  126. package/build/cjs/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
  127. package/build/cjs/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
  128. package/build/cjs/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
  129. package/build/cjs/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
  130. package/build/cjs/ui/store/selectors/global/index.d.ts +912 -0
  131. package/build/cjs/ui/store/selectors/global/index.js +10 -1
  132. package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
  133. package/build/cjs/ui/store/selectors/global/supported-features.d.ts +30 -0
  134. package/build/cjs/ui/store/selectors/modals/errors.d.ts +5 -0
  135. package/build/cjs/ui/store/selectors/navigation/content/document.d.ts +5 -0
  136. package/build/cjs/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
  137. package/build/cjs/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
  138. package/build/cjs/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
  139. package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +35 -0
  140. package/build/cjs/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
  141. package/build/cjs/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
  142. package/build/cjs/ui/store/selectors/navigation/navigation.d.ts +10 -0
  143. package/build/cjs/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
  144. package/build/cjs/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
  145. package/build/cjs/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
  146. package/build/cjs/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
  147. package/build/cjs/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
  148. package/build/cjs/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
  149. package/build/cjs/ui/store/selectors/operations/index.d.ts +60 -0
  150. package/build/cjs/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
  151. package/build/cjs/ui/store/selectors/operations/operation.d.ts +60 -0
  152. package/build/cjs/ui/store/selectors/operations/operations-list.d.ts +15 -0
  153. package/build/cjs/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
  154. package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
  155. package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
  156. package/build/cjs/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
  157. package/build/cjs/ui/store/selectors/scheduling/index.d.ts +5 -0
  158. package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
  159. package/build/cjs/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
  160. package/build/cjs/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
  161. package/build/cjs/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
  162. package/build/cjs/ui/store/selectors/thor/support.d.ts +25 -0
  163. package/build/esm/@types/core.d.ts +7 -7
  164. package/build/esm/server/components/layout-config.js +4 -3
  165. package/build/esm/server/components/layout-config.js.map +1 -1
  166. package/build/esm/server/components/requestsSetup.js +12 -5
  167. package/build/esm/server/components/requestsSetup.js.map +1 -1
  168. package/build/esm/server/components/settings.d.ts +10 -5
  169. package/build/esm/server/components/settings.js +33 -22
  170. package/build/esm/server/components/settings.js.map +1 -1
  171. package/build/esm/server/components/table.d.ts +3 -3
  172. package/build/esm/server/components/table.js +10 -10
  173. package/build/esm/server/components/table.js.map +1 -1
  174. package/build/esm/server/components/yt-auth.d.ts +0 -2
  175. package/build/esm/server/components/yt-auth.js +6 -11
  176. package/build/esm/server/components/yt-auth.js.map +1 -1
  177. package/build/esm/server/configs/common.js +4 -14
  178. package/build/esm/server/configs/common.js.map +1 -1
  179. package/build/esm/server/configs/local.js +0 -5
  180. package/build/esm/server/configs/local.js.map +1 -1
  181. package/build/esm/server/controllers/chyt-api.js +1 -1
  182. package/build/esm/server/controllers/chyt-api.js.map +1 -1
  183. package/build/esm/server/controllers/cluster-info.js +3 -3
  184. package/build/esm/server/controllers/cluster-info.js.map +1 -1
  185. package/build/esm/server/controllers/cluster-params.js +1 -1
  186. package/build/esm/server/controllers/cluster-params.js.map +1 -1
  187. package/build/esm/server/controllers/clusters.d.ts +1 -0
  188. package/build/esm/server/controllers/clusters.js +23 -0
  189. package/build/esm/server/controllers/clusters.js.map +1 -1
  190. package/build/esm/server/controllers/home.js +32 -28
  191. package/build/esm/server/controllers/home.js.map +1 -1
  192. package/build/esm/server/controllers/login.js +35 -21
  193. package/build/esm/server/controllers/login.js.map +1 -1
  194. package/build/esm/server/controllers/odin-proxy-api.js +1 -1
  195. package/build/esm/server/controllers/odin-proxy-api.js.map +1 -1
  196. package/build/esm/server/controllers/scheduling-pools.js +3 -3
  197. package/build/esm/server/controllers/scheduling-pools.js.map +1 -1
  198. package/build/esm/server/controllers/settings.js +26 -15
  199. package/build/esm/server/controllers/settings.js.map +1 -1
  200. package/build/esm/server/controllers/table-column-preset.js +15 -14
  201. package/build/esm/server/controllers/table-column-preset.js.map +1 -1
  202. package/build/esm/server/controllers/yt-api.js +1 -1
  203. package/build/esm/server/controllers/yt-api.js.map +1 -1
  204. package/build/esm/server/controllers/yt-proxy-api.js +3 -3
  205. package/build/esm/server/controllers/yt-proxy-api.js.map +1 -1
  206. package/build/esm/server/index.js +12 -8
  207. package/build/esm/server/index.js.map +1 -1
  208. package/build/esm/server/middlewares/authorization.d.ts +1 -1
  209. package/build/esm/server/middlewares/authorization.js +21 -16
  210. package/build/esm/server/middlewares/authorization.js.map +1 -1
  211. package/build/esm/server/middlewares/yt-auth.js +8 -7
  212. package/build/esm/server/middlewares/yt-auth.js.map +1 -1
  213. package/build/esm/server/routes.js +29 -26
  214. package/build/esm/server/routes.js.map +1 -1
  215. package/build/esm/server/utils/index.d.ts +1 -1
  216. package/build/esm/server/utils/index.js +12 -6
  217. package/build/esm/server/utils/index.js.map +1 -1
  218. package/build/esm/shared/yt-types.d.ts +1 -0
  219. package/build/esm/ui/common/utils/settings-remote-provider.d.ts +5 -5
  220. package/build/esm/ui/common/utils/settings-remote-provider.js +42 -16
  221. package/build/esm/ui/common/utils/settings-remote-provider.js.map +1 -1
  222. package/build/esm/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
  223. package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
  224. package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
  225. package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
  226. package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js +8 -5
  227. package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
  228. package/build/esm/ui/config/ui-settings.d.ts +1 -0
  229. package/build/esm/ui/config/ui-settings.js +2 -1
  230. package/build/esm/ui/config/ui-settings.js.map +1 -1
  231. package/build/esm/ui/constants/index.d.ts +7 -0
  232. package/build/esm/ui/constants/index.js +1 -0
  233. package/build/esm/ui/constants/index.js.map +1 -1
  234. package/build/esm/ui/containers/App/App.js +4 -3
  235. package/build/esm/ui/containers/App/App.js.map +1 -1
  236. package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
  237. package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
  238. package/build/esm/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
  239. package/build/esm/ui/containers/ClusterPage/ClusterPage.js +4 -2
  240. package/build/esm/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
  241. package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
  242. package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
  243. package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.scss +6 -0
  244. package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
  245. package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js +12 -4
  246. package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
  247. package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
  248. package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
  249. package/build/esm/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
  250. package/build/esm/ui/entries/main.js +4 -1
  251. package/build/esm/ui/entries/main.js.map +1 -1
  252. package/build/esm/ui/pages/operations/selectors.d.ts +5 -0
  253. package/build/esm/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
  254. package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
  255. package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
  256. package/build/esm/ui/pages/system/Chunks/Chunks.d.ts +1 -1
  257. package/build/esm/ui/store/actions/cluster-params.d.ts +1 -0
  258. package/build/esm/ui/store/actions/cluster-params.js +12 -0
  259. package/build/esm/ui/store/actions/cluster-params.js.map +1 -1
  260. package/build/esm/ui/store/actions/clusters-menu.d.ts +1 -0
  261. package/build/esm/ui/store/actions/clusters-menu.js +22 -3
  262. package/build/esm/ui/store/actions/clusters-menu.js.map +1 -1
  263. package/build/esm/ui/store/actions/global/index.d.ts +3 -1
  264. package/build/esm/ui/store/actions/global/index.js +19 -4
  265. package/build/esm/ui/store/actions/global/index.js.map +1 -1
  266. package/build/esm/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
  267. package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
  268. package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
  269. package/build/esm/ui/store/actions/navigation/content/table/table.js +2 -1
  270. package/build/esm/ui/store/actions/navigation/content/table/table.js.map +1 -1
  271. package/build/esm/ui/store/actions/settings/index.js +25 -19
  272. package/build/esm/ui/store/actions/settings/index.js.map +1 -1
  273. package/build/esm/ui/store/reducers/accounts/usage/index.d.ts +1 -1
  274. package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
  275. package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js +9 -1
  276. package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
  277. package/build/esm/ui/store/reducers/index.d.ts +5 -0
  278. package/build/esm/ui/store/reducers/index.js.map +1 -1
  279. package/build/esm/ui/store/reducers/settings.js +1 -1
  280. package/build/esm/ui/store/reducers/settings.js.map +1 -1
  281. package/build/esm/ui/store/selectors/accounts/account-usage.d.ts +40 -0
  282. package/build/esm/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
  283. package/build/esm/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
  284. package/build/esm/ui/store/selectors/chyt/index.d.ts +35 -0
  285. package/build/esm/ui/store/selectors/components/node/memory.d.ts +35 -0
  286. package/build/esm/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
  287. package/build/esm/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
  288. package/build/esm/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
  289. package/build/esm/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
  290. package/build/esm/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
  291. package/build/esm/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
  292. package/build/esm/ui/store/selectors/global/index.d.ts +912 -0
  293. package/build/esm/ui/store/selectors/global/index.js +10 -1
  294. package/build/esm/ui/store/selectors/global/index.js.map +1 -1
  295. package/build/esm/ui/store/selectors/global/supported-features.d.ts +30 -0
  296. package/build/esm/ui/store/selectors/modals/errors.d.ts +5 -0
  297. package/build/esm/ui/store/selectors/navigation/content/document.d.ts +5 -0
  298. package/build/esm/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
  299. package/build/esm/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
  300. package/build/esm/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
  301. package/build/esm/ui/store/selectors/navigation/content/table.d.ts +35 -0
  302. package/build/esm/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
  303. package/build/esm/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
  304. package/build/esm/ui/store/selectors/navigation/navigation.d.ts +10 -0
  305. package/build/esm/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
  306. package/build/esm/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
  307. package/build/esm/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
  308. package/build/esm/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
  309. package/build/esm/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
  310. package/build/esm/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
  311. package/build/esm/ui/store/selectors/operations/index.d.ts +60 -0
  312. package/build/esm/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
  313. package/build/esm/ui/store/selectors/operations/operation.d.ts +60 -0
  314. package/build/esm/ui/store/selectors/operations/operations-list.d.ts +15 -0
  315. package/build/esm/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
  316. package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
  317. package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
  318. package/build/esm/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
  319. package/build/esm/ui/store/selectors/scheduling/index.d.ts +5 -0
  320. package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
  321. package/build/esm/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
  322. package/build/esm/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
  323. package/build/esm/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
  324. package/build/esm/ui/store/selectors/thor/support.d.ts +25 -0
  325. package/dist/public/build/assets-manifest.json +12 -12
  326. package/dist/public/build/css/main.8a4cd357.css +2 -0
  327. package/dist/public/build/css/main.8a4cd357.css.map +1 -0
  328. package/dist/public/build/js/{861.9703a31c.chunk.js → 861.a0939319.chunk.js} +2 -2
  329. package/dist/public/build/js/861.a0939319.chunk.js.map +1 -0
  330. package/dist/public/build/js/main.c39cff0d.js +3 -0
  331. package/dist/public/build/js/{main.5b132a95.js.map → main.c39cff0d.js.map} +1 -1
  332. package/dist/public/build/js/runtime.0ac0f2e8.js +2 -0
  333. package/dist/public/build/js/{runtime.a87a1f88.js.map → runtime.0ac0f2e8.js.map} +1 -1
  334. package/dist/public/build/manifest.json +8 -8
  335. package/dist/server/components/layout-config.js +3 -3
  336. package/dist/server/components/requestsSetup.js +13 -5
  337. package/dist/server/components/settings.d.ts +10 -5
  338. package/dist/server/components/settings.js +24 -23
  339. package/dist/server/components/table.d.ts +3 -3
  340. package/dist/server/components/table.js +4 -4
  341. package/dist/server/components/yt-auth.d.ts +0 -2
  342. package/dist/server/components/yt-auth.js +5 -14
  343. package/dist/server/configs/common.js +5 -13
  344. package/dist/server/configs/local.js +0 -5
  345. package/dist/server/controllers/chyt-api.js +1 -1
  346. package/dist/server/controllers/cluster-info.js +2 -2
  347. package/dist/server/controllers/cluster-params.js +1 -1
  348. package/dist/server/controllers/clusters.d.ts +1 -0
  349. package/dist/server/controllers/clusters.js +24 -1
  350. package/dist/server/controllers/home.js +10 -6
  351. package/dist/server/controllers/login.js +18 -5
  352. package/dist/server/controllers/odin-proxy-api.js +1 -1
  353. package/dist/server/controllers/scheduling-pools.js +2 -2
  354. package/dist/server/controllers/settings.js +10 -10
  355. package/dist/server/controllers/table-column-preset.js +4 -3
  356. package/dist/server/controllers/yt-api.js +1 -1
  357. package/dist/server/controllers/yt-proxy-api.js +2 -2
  358. package/dist/server/index.js +11 -8
  359. package/dist/server/middlewares/authorization.d.ts +1 -1
  360. package/dist/server/middlewares/authorization.js +3 -2
  361. package/dist/server/middlewares/yt-auth.js +3 -2
  362. package/dist/server/routes.js +26 -25
  363. package/dist/server/utils/index.d.ts +1 -1
  364. package/dist/server/utils/index.js +12 -4
  365. package/package.json +2 -2
  366. package/dist/public/build/css/main.4aa70d7b.css +0 -2
  367. package/dist/public/build/css/main.4aa70d7b.css.map +0 -1
  368. package/dist/public/build/js/861.9703a31c.chunk.js.map +0 -1
  369. package/dist/public/build/js/main.5b132a95.js +0 -3
  370. package/dist/public/build/js/runtime.a87a1f88.js +0 -2
  371. /package/dist/public/build/js/{main.5b132a95.js.LICENSE.txt → main.c39cff0d.js.LICENSE.txt} +0 -0
@@ -35,6 +35,10 @@ export declare const isSupportedSelector: ((state: Omit<import("redux").Combined
35
35
  aclFilters: import("../../reducers/acl/acl-filters").AclFiltersState;
36
36
  actions: never;
37
37
  clustersMenu: {
38
+ clusters: any;
39
+ viewMode: string;
40
+ clusterFilter: string;
41
+ } | {
38
42
  viewMode: any;
39
43
  clusters: {};
40
44
  clusterFilter: string;
@@ -867,6 +871,7 @@ export declare const isSupportedSelector: ((state: Omit<import("redux").Combined
867
871
  rootPagesCluster?: string | undefined;
868
872
  asideHeaderWidth: number;
869
873
  allowedExperimentalPages: string[];
874
+ ytAuthCluster?: string | undefined;
870
875
  };
871
876
  }) => (featureName: "fieldsFilter" | "effectiveExpiration" | "clusterNodeVersion" | "nodeMaintenanceApi" | "schedulingChildrenByPool") => boolean) & import("reselect").OutputSelectorFields<(args_0: `${number}.${number}.${number}-${string}`, args_1: `${number}.${number}.${number}-${string}`, args_2: `${number}.${number}.${number}-${string}`) => (featureName: "fieldsFilter" | "effectiveExpiration" | "clusterNodeVersion" | "nodeMaintenanceApi" | "schedulingChildrenByPool") => boolean, {
872
877
  clearCache: () => void;
@@ -878,6 +883,10 @@ export declare const isSupportedEffectiveExpiration: ((state: Omit<import("redux
878
883
  aclFilters: import("../../reducers/acl/acl-filters").AclFiltersState;
879
884
  actions: never;
880
885
  clustersMenu: {
886
+ clusters: any;
887
+ viewMode: string;
888
+ clusterFilter: string;
889
+ } | {
881
890
  viewMode: any;
882
891
  clusters: {};
883
892
  clusterFilter: string;
@@ -1710,6 +1719,7 @@ export declare const isSupportedEffectiveExpiration: ((state: Omit<import("redux
1710
1719
  rootPagesCluster?: string | undefined;
1711
1720
  asideHeaderWidth: number;
1712
1721
  allowedExperimentalPages: string[];
1722
+ ytAuthCluster?: string | undefined;
1713
1723
  };
1714
1724
  }) => boolean) & import("reselect").OutputSelectorFields<(args_0: (featureName: "fieldsFilter" | "effectiveExpiration" | "clusterNodeVersion" | "nodeMaintenanceApi" | "schedulingChildrenByPool") => boolean) => boolean, {
1715
1725
  clearCache: () => void;
@@ -1721,6 +1731,10 @@ export declare const isSupportedClusterNodeForVersions: ((state: Omit<import("re
1721
1731
  aclFilters: import("../../reducers/acl/acl-filters").AclFiltersState;
1722
1732
  actions: never;
1723
1733
  clustersMenu: {
1734
+ clusters: any;
1735
+ viewMode: string;
1736
+ clusterFilter: string;
1737
+ } | {
1724
1738
  viewMode: any;
1725
1739
  clusters: {};
1726
1740
  clusterFilter: string;
@@ -2553,6 +2567,7 @@ export declare const isSupportedClusterNodeForVersions: ((state: Omit<import("re
2553
2567
  rootPagesCluster?: string | undefined;
2554
2568
  asideHeaderWidth: number;
2555
2569
  allowedExperimentalPages: string[];
2570
+ ytAuthCluster?: string | undefined;
2556
2571
  };
2557
2572
  }) => boolean) & import("reselect").OutputSelectorFields<(args_0: (featureName: "fieldsFilter" | "effectiveExpiration" | "clusterNodeVersion" | "nodeMaintenanceApi" | "schedulingChildrenByPool") => boolean) => boolean, {
2558
2573
  clearCache: () => void;
@@ -2564,6 +2579,10 @@ export declare const isSupportedNodeMaintenanceApi: ((state: Omit<import("redux"
2564
2579
  aclFilters: import("../../reducers/acl/acl-filters").AclFiltersState;
2565
2580
  actions: never;
2566
2581
  clustersMenu: {
2582
+ clusters: any;
2583
+ viewMode: string;
2584
+ clusterFilter: string;
2585
+ } | {
2567
2586
  viewMode: any;
2568
2587
  clusters: {};
2569
2588
  clusterFilter: string;
@@ -3396,6 +3415,7 @@ export declare const isSupportedNodeMaintenanceApi: ((state: Omit<import("redux"
3396
3415
  rootPagesCluster?: string | undefined;
3397
3416
  asideHeaderWidth: number;
3398
3417
  allowedExperimentalPages: string[];
3418
+ ytAuthCluster?: string | undefined;
3399
3419
  };
3400
3420
  }) => boolean) & import("reselect").OutputSelectorFields<(args_0: (featureName: "fieldsFilter" | "effectiveExpiration" | "clusterNodeVersion" | "nodeMaintenanceApi" | "schedulingChildrenByPool") => boolean) => boolean, {
3401
3421
  clearCache: () => void;
@@ -3407,6 +3427,10 @@ export declare const isSupportedSchedulingChildrenByPool: ((state: Omit<import("
3407
3427
  aclFilters: import("../../reducers/acl/acl-filters").AclFiltersState;
3408
3428
  actions: never;
3409
3429
  clustersMenu: {
3430
+ clusters: any;
3431
+ viewMode: string;
3432
+ clusterFilter: string;
3433
+ } | {
3410
3434
  viewMode: any;
3411
3435
  clusters: {};
3412
3436
  clusterFilter: string;
@@ -4239,6 +4263,7 @@ export declare const isSupportedSchedulingChildrenByPool: ((state: Omit<import("
4239
4263
  rootPagesCluster?: string | undefined;
4240
4264
  asideHeaderWidth: number;
4241
4265
  allowedExperimentalPages: string[];
4266
+ ytAuthCluster?: string | undefined;
4242
4267
  };
4243
4268
  }) => boolean) & import("reselect").OutputSelectorFields<(args_0: (featureName: "fieldsFilter" | "effectiveExpiration" | "clusterNodeVersion" | "nodeMaintenanceApi" | "schedulingChildrenByPool") => boolean) => boolean, {
4244
4269
  clearCache: () => void;
@@ -10,6 +10,11 @@ import {UISettings} from '../../shared/ui-settings';
10
10
  import {Settings} from '../shared/constants/settings-types';
11
11
 
12
12
  export interface YTCoreConfig {
13
+ /**
14
+ * Enables YT-password authentication when defined
15
+ */
16
+ allowPasswordAuth: boolean;
17
+
13
18
  /**
14
19
  * Path to the file with OAuth-token of special-user ("the OAuthRobot" below) in format: {"oauthToken": "******"}
15
20
  * The OAuth-token is used for some service requests, see usages of getRobotYTApiSetup.
@@ -52,7 +57,7 @@ export interface YTCoreConfig {
52
57
  * The OAuthRobot should have read/write access to mapNodePath
53
58
  */
54
59
  userSettingsConfig?: {
55
- cluster: string;
60
+ cluster?: string;
56
61
  // path to a map node with user-settings files
57
62
  mapNodePath: string;
58
63
  };
@@ -65,15 +70,10 @@ export interface YTCoreConfig {
65
70
  * The OAuthRobot should have read/write access to the table.
66
71
  */
67
72
  userColumnPresets?: {
68
- cluster: string;
73
+ cluster?: string;
69
74
  dynamicTablePath: string;
70
75
  };
71
76
 
72
- /**
73
- * Enables YT-password authentication when defined
74
- */
75
- ytAuthCluster?: string;
76
-
77
77
  /**
78
78
  * OpenID Connect configuration
79
79
  */
@@ -10,12 +10,12 @@ export function getLayoutConfig(_x, _x2) {
10
10
  function _getLayoutConfig() {
11
11
  _getLayoutConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(req, params) {
12
12
  var _metrikaCounter$;
13
- var login, ytConfig, settings, _ref, ytApiUseCORS, uiSettings, metrikaCounter, ytAuthCluster, odinBaseUrl, YT, uiVersion, parameters, isProduction, res;
13
+ var login, ytConfig, settings, _ref, ytApiUseCORS, uiSettings, metrikaCounter, allowPasswordAuth, odinBaseUrl, userSettingsConfig, YT, uiVersion, parameters, isProduction, res;
14
14
  return _regeneratorRuntime.wrap(function _callee$(_context) {
15
15
  while (1) switch (_context.prev = _context.next) {
16
16
  case 0:
17
17
  login = params.login, ytConfig = params.ytConfig, settings = params.settings;
18
- _ref = req.ctx.config, ytApiUseCORS = _ref.ytApiUseCORS, uiSettings = _ref.uiSettings, metrikaCounter = _ref.metrikaCounter, ytAuthCluster = _ref.ytAuthCluster, odinBaseUrl = _ref.odinBaseUrl;
18
+ _ref = req.ctx.config, ytApiUseCORS = _ref.ytApiUseCORS, uiSettings = _ref.uiSettings, metrikaCounter = _ref.metrikaCounter, allowPasswordAuth = _ref.allowPasswordAuth, odinBaseUrl = _ref.odinBaseUrl, userSettingsConfig = _ref.userSettingsConfig;
19
19
  YT = ytConfig;
20
20
  uiVersion = getInterfaceVersion();
21
21
  parameters = {
@@ -40,11 +40,12 @@ function _getLayoutConfig() {
40
40
  parameters: parameters
41
41
  }), ");"), "window.YT.environment = window.YT.environment || (".concat(isProduction, " ? 'production' : 'development');")],
42
42
  data: {
43
+ userSettingsCluster: userSettingsConfig === null || userSettingsConfig === void 0 ? void 0 : userSettingsConfig.cluster,
43
44
  settings: settings,
44
45
  ytApiUseCORS: ytApiUseCORS,
45
46
  uiSettings: uiSettings,
46
47
  metrikaCounterId: metrikaCounter === null || metrikaCounter === void 0 || (_metrikaCounter$ = metrikaCounter[0]) === null || _metrikaCounter$ === void 0 ? void 0 : _metrikaCounter$.id,
47
- allowLoginDialog: Boolean(ytAuthCluster),
48
+ allowLoginDialog: Boolean(allowPasswordAuth),
48
49
  allowOAuth: isOAuthAllowed(req),
49
50
  oauthButtonLabel: isOAuthAllowed(req) ? getOAuthSettings(req).buttonLabel : undefined,
50
51
  allowUserColumnPresets: isUserColumnPresetsEnabled(req),
@@ -1 +1 @@
1
- {"version":3,"names":["isUserColumnPresetsEnabled","getInterfaceVersion","isProductionEnv","getAuthWay","getOAuthSettings","isOAuthAllowed","getLayoutConfig","_x","_x2","_getLayoutConfig","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","params","_metrikaCounter$","login","ytConfig","settings","_ref","ytApiUseCORS","uiSettings","metrikaCounter","ytAuthCluster","odinBaseUrl","YT","uiVersion","parameters","isProduction","res","wrap","_callee$","_context","prev","next","ctx","config","version","authWay","bodyContent","root","title","lang","meta","name","content","inlineScripts","concat","JSON","stringify","data","metrikaCounterId","id","allowLoginDialog","Boolean","allowOAuth","oauthButtonLabel","buttonLabel","undefined","allowUserColumnPresets","odinPageEnabled","pluginsOptions","yandexMetrika","counter","layout","abrupt","stop"],"sources":["layout-config.ts"],"sourcesContent":["import type {Request} from 'express';\nimport {YTCoreConfig} from '../../@types/core';\nimport {ConfigData, YTConfig} from '../../shared/yt-types';\nimport {AppLayoutConfig} from '../render-layout';\nimport {isUserColumnPresetsEnabled} from '../controllers/table-column-preset';\nimport {getInterfaceVersion, isProductionEnv} from '../utils';\nimport {getAuthWay} from '../utils/authorization';\nimport {getOAuthSettings, isOAuthAllowed} from './oauth';\n\ninterface Params {\n login?: string;\n uid?: string;\n cluster: string | undefined;\n settings: ConfigData['settings'];\n ytConfig: Partial<YTConfig>;\n}\n\nexport async function getLayoutConfig(req: Request, params: Params): Promise<AppLayoutConfig> {\n const {login, ytConfig, settings} = params;\n const {ytApiUseCORS, uiSettings, metrikaCounter, ytAuthCluster, odinBaseUrl} = req.ctx\n .config as YTCoreConfig;\n const YT = ytConfig;\n const uiVersion = getInterfaceVersion();\n\n const parameters = {\n interface: {\n version: uiVersion,\n },\n login,\n authWay: getAuthWay(req),\n };\n\n const isProduction = isProductionEnv();\n\n const res: AppLayoutConfig = {\n bodyContent: {root: ''},\n title: 'YT',\n lang: 'en',\n meta: [\n {\n name: 'viewport',\n content: 'width=device-width, initial-scale=1.0',\n },\n ],\n inlineScripts: [\n `window.YT = Object.assign(window.YT || {}, ${JSON.stringify(YT)}, ${JSON.stringify({\n parameters,\n })});`,\n `window.YT.environment = window.YT.environment || (${isProduction} ? 'production' : 'development');`,\n ],\n data: {\n settings,\n ytApiUseCORS,\n uiSettings,\n metrikaCounterId: metrikaCounter?.[0]?.id,\n allowLoginDialog: Boolean(ytAuthCluster),\n allowOAuth: isOAuthAllowed(req),\n oauthButtonLabel: isOAuthAllowed(req) ? getOAuthSettings(req).buttonLabel : undefined,\n allowUserColumnPresets: isUserColumnPresetsEnabled(req),\n odinPageEnabled: Boolean(odinBaseUrl),\n },\n pluginsOptions: {\n yandexMetrika: {\n counter: metrikaCounter,\n },\n layout: {\n name: 'main',\n },\n },\n };\n return res;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["isUserColumnPresetsEnabled","getInterfaceVersion","isProductionEnv","getAuthWay","getOAuthSettings","isOAuthAllowed","getLayoutConfig","_x","_x2","_getLayoutConfig","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","params","_metrikaCounter$","login","ytConfig","settings","_ref","ytApiUseCORS","uiSettings","metrikaCounter","allowPasswordAuth","odinBaseUrl","userSettingsConfig","YT","uiVersion","parameters","isProduction","res","wrap","_callee$","_context","prev","next","ctx","config","version","authWay","bodyContent","root","title","lang","meta","name","content","inlineScripts","concat","JSON","stringify","data","userSettingsCluster","cluster","metrikaCounterId","id","allowLoginDialog","Boolean","allowOAuth","oauthButtonLabel","buttonLabel","undefined","allowUserColumnPresets","odinPageEnabled","pluginsOptions","yandexMetrika","counter","layout","abrupt","stop"],"sources":["layout-config.ts"],"sourcesContent":["import type {Request} from 'express';\nimport {YTCoreConfig} from '../../@types/core';\nimport {ConfigData, YTConfig} from '../../shared/yt-types';\nimport {AppLayoutConfig} from '../render-layout';\nimport {isUserColumnPresetsEnabled} from '../controllers/table-column-preset';\nimport {getInterfaceVersion, isProductionEnv} from '../utils';\nimport {getAuthWay} from '../utils/authorization';\nimport {getOAuthSettings, isOAuthAllowed} from './oauth';\n\ninterface Params {\n login?: string;\n uid?: string;\n cluster: string | undefined;\n settings: ConfigData['settings'];\n ytConfig: Partial<YTConfig>;\n}\n\nexport async function getLayoutConfig(req: Request, params: Params): Promise<AppLayoutConfig> {\n const {login, ytConfig, settings} = params;\n const {\n ytApiUseCORS,\n uiSettings,\n metrikaCounter,\n allowPasswordAuth,\n odinBaseUrl,\n userSettingsConfig,\n } = req.ctx.config as YTCoreConfig;\n const YT = ytConfig;\n const uiVersion = getInterfaceVersion();\n\n const parameters = {\n interface: {\n version: uiVersion,\n },\n login,\n authWay: getAuthWay(req),\n };\n\n const isProduction = isProductionEnv();\n\n const res: AppLayoutConfig = {\n bodyContent: {root: ''},\n title: 'YT',\n lang: 'en',\n meta: [\n {\n name: 'viewport',\n content: 'width=device-width, initial-scale=1.0',\n },\n ],\n inlineScripts: [\n `window.YT = Object.assign(window.YT || {}, ${JSON.stringify(YT)}, ${JSON.stringify({\n parameters,\n })});`,\n `window.YT.environment = window.YT.environment || (${isProduction} ? 'production' : 'development');`,\n ],\n data: {\n userSettingsCluster: userSettingsConfig?.cluster,\n settings,\n ytApiUseCORS,\n uiSettings,\n metrikaCounterId: metrikaCounter?.[0]?.id,\n allowLoginDialog: Boolean(allowPasswordAuth),\n allowOAuth: isOAuthAllowed(req),\n oauthButtonLabel: isOAuthAllowed(req) ? getOAuthSettings(req).buttonLabel : undefined,\n allowUserColumnPresets: isUserColumnPresetsEnabled(req),\n odinPageEnabled: Boolean(odinBaseUrl),\n },\n pluginsOptions: {\n yandexMetrika: {\n counter: metrikaCounter,\n },\n layout: {\n name: 'main',\n },\n },\n };\n return res;\n}\n"],"mappings":"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"}
@@ -4,12 +4,19 @@ var _excluded = ["setup"],
4
4
  _excluded2 = ["setup"];
5
5
  import { getClusterConfig } from '../components/utils';
6
6
  import { getApp } from '../ServerFactory';
7
- function getRobotOAuthToken() {
7
+ function getRobotOAuthToken(cluster) {
8
8
  var _ref = getApp().config,
9
9
  ytInterfaceSecret = _ref.ytInterfaceSecret;
10
- // eslint-disable-next-line security/detect-non-literal-require
11
- var secret = ytInterfaceSecret ? require(ytInterfaceSecret).oauthToken : '';
12
- return secret;
10
+ var oauthToken = '';
11
+ if (ytInterfaceSecret) {
12
+ var _require, _require2;
13
+ oauthToken =
14
+ // eslint-disable-next-line security/detect-non-literal-require
15
+ ((_require = require(ytInterfaceSecret)) === null || _require === void 0 || (_require = _require[cluster]) === null || _require === void 0 ? void 0 : _require.oauthToken) || ( // eslint-disable-next-line security/detect-non-literal-require
16
+ (_require2 = require(ytInterfaceSecret)) === null || _require2 === void 0 ? void 0 : _require2.oauthToken); // Backward compatibility
17
+ }
18
+
19
+ return oauthToken;
13
20
  }
14
21
  function getClusterSetup(clusterConfig) {
15
22
  var proxy = clusterConfig.proxy;
@@ -39,7 +46,7 @@ export function getYTApiClusterSetup(cluster) {
39
46
  }, getClusterSetup(clusterConfig));
40
47
  }
41
48
  export function getRobotYTApiSetup(cluster) {
42
- var oauthToken = getRobotOAuthToken();
49
+ var oauthToken = getRobotOAuthToken(cluster);
43
50
  var config = getYTApiClusterSetup(cluster);
44
51
  var setup = config.setup,
45
52
  rest = _objectWithoutProperties(config, _excluded);
@@ -1 +1 @@
1
- {"version":3,"names":["getClusterConfig","getApp","getRobotOAuthToken","_ref","config","ytInterfaceSecret","secret","require","oauthToken","getClusterSetup","clusterConfig","proxy","secure","Boolean","setup","id","authentication","useEncodedParameters","useHeavyProxy","timeout","proxyBaseUrl","concat","getYTApiClusterSetup","cluster","_getClusterConfig","isLocalCluster","ytConfig","Error","_objectSpread","getRobotYTApiSetup","rest","_objectWithoutProperties","_excluded","authHeaders","Authorization","type","token","getUserYTApiSetup","req","_getYTApiClusterSetup","_excluded2","yt","ytApiAuthHeaders","Object","assign","requestHeaders"],"sources":["requestsSetup.ts"],"sourcesContent":["import type {Request} from 'express';\n\nimport {YTCoreConfig} from '../../@types/core';\nimport {ClusterConfig} from '../../shared/yt-types';\nimport {getClusterConfig} from '../components/utils';\nimport {getApp} from '../ServerFactory';\n\nfunction getRobotOAuthToken() {\n const {ytInterfaceSecret} = getApp().config as YTCoreConfig;\n // eslint-disable-next-line security/detect-non-literal-require\n const secret = ytInterfaceSecret ? require(ytInterfaceSecret).oauthToken : '';\n return secret;\n}\n\nexport interface YTApiSetup {\n id: string;\n proxy: string;\n authentication: 'none' | 'basic' | 'domain' | {type: 'oauth'; token: string};\n secure: boolean;\n useEncodedParameters: boolean;\n useHeavyProxy: boolean;\n timeout: number;\n}\n\nfunction getClusterSetup(clusterConfig: ClusterConfig): {\n setup: YTApiSetup;\n proxyBaseUrl: string;\n} {\n const {proxy} = clusterConfig;\n const secure = Boolean(clusterConfig?.secure);\n\n return {\n setup: {\n id: clusterConfig?.id,\n proxy,\n authentication: clusterConfig?.authentication || 'none',\n secure,\n useEncodedParameters: true,\n useHeavyProxy: false,\n timeout: 5000,\n },\n proxyBaseUrl: secure ? `https://${proxy}` : `http://${proxy}`,\n };\n}\n\nexport type YTApiClusterSetup = ReturnType<typeof getClusterSetup>;\n\nexport function getYTApiClusterSetup(\n cluster: string,\n): YTApiClusterSetup & {isLocalCluster?: boolean} {\n const {\n clusterConfig,\n ytConfig: {isLocalCluster},\n } = getClusterConfig(cluster);\n if (!clusterConfig) {\n throw new Error(`Cluster '${cluster}' is not found`);\n }\n\n return {isLocalCluster, ...getClusterSetup(clusterConfig)};\n}\n\nexport function getRobotYTApiSetup(cluster: string): YTApiUserSetup {\n const oauthToken = getRobotOAuthToken();\n const config = getYTApiClusterSetup(cluster);\n\n const {setup, ...rest} = config;\n\n const authHeaders: Record<string, string> =\n setup.authentication && setup.authentication !== 'none'\n ? {\n Authorization: `OAuth ${oauthToken}`,\n }\n : {};\n\n return {\n setup: {\n ...setup,\n authentication:\n setup.authentication && setup.authentication !== 'none'\n ? {\n type: 'oauth',\n token: oauthToken!,\n }\n : 'none',\n },\n authHeaders,\n ...rest,\n };\n}\n\n/**\n * @param cluster\n * @param req\n * @returns undefined when cluster is not found\n */\nexport function getUserYTApiSetup(cluster: string, req: Request): YTApiUserSetup {\n const {setup, ...rest} = getYTApiClusterSetup(cluster);\n const {authentication} = setup;\n\n const authHeaders =\n authentication && authentication !== 'none' ? req.yt.ytApiAuthHeaders || {} : {};\n\n Object.assign(setup, {requestHeaders: {...authHeaders}});\n\n return {\n ...rest,\n setup,\n authHeaders,\n };\n}\n\nexport type YTApiUserSetup = ReturnType<typeof getYTApiClusterSetup> & {\n authHeaders: Record<string, string>;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["getClusterConfig","getApp","getRobotOAuthToken","cluster","_ref","config","ytInterfaceSecret","oauthToken","_require","_require2","require","getClusterSetup","clusterConfig","proxy","secure","Boolean","setup","id","authentication","useEncodedParameters","useHeavyProxy","timeout","proxyBaseUrl","concat","getYTApiClusterSetup","_getClusterConfig","isLocalCluster","ytConfig","Error","_objectSpread","getRobotYTApiSetup","rest","_objectWithoutProperties","_excluded","authHeaders","Authorization","type","token","getUserYTApiSetup","req","_getYTApiClusterSetup","_excluded2","yt","ytApiAuthHeaders","Object","assign","requestHeaders"],"sources":["requestsSetup.ts"],"sourcesContent":["import type {Request} from 'express';\n\nimport {YTCoreConfig} from '../../@types/core';\nimport {ClusterConfig} from '../../shared/yt-types';\nimport {getClusterConfig} from '../components/utils';\nimport {getApp} from '../ServerFactory';\n\nfunction getRobotOAuthToken(cluster: string) {\n const {ytInterfaceSecret} = getApp().config as YTCoreConfig;\n\n let oauthToken = '';\n\n if (ytInterfaceSecret) {\n oauthToken =\n // eslint-disable-next-line security/detect-non-literal-require\n require(ytInterfaceSecret)?.[cluster]?.oauthToken ||\n // eslint-disable-next-line security/detect-non-literal-require\n require(ytInterfaceSecret)?.oauthToken; // Backward compatibility\n }\n\n return oauthToken;\n}\n\nexport interface YTApiSetup {\n id: string;\n proxy: string;\n authentication: 'none' | 'basic' | 'domain' | {type: 'oauth'; token: string};\n secure: boolean;\n useEncodedParameters: boolean;\n useHeavyProxy: boolean;\n timeout: number;\n}\n\nfunction getClusterSetup(clusterConfig: ClusterConfig): {\n setup: YTApiSetup;\n proxyBaseUrl: string;\n} {\n const {proxy} = clusterConfig;\n const secure = Boolean(clusterConfig?.secure);\n\n return {\n setup: {\n id: clusterConfig?.id,\n proxy,\n authentication: clusterConfig?.authentication || 'none',\n secure,\n useEncodedParameters: true,\n useHeavyProxy: false,\n timeout: 5000,\n },\n proxyBaseUrl: secure ? `https://${proxy}` : `http://${proxy}`,\n };\n}\n\nexport type YTApiClusterSetup = ReturnType<typeof getClusterSetup>;\n\nexport function getYTApiClusterSetup(\n cluster: string,\n): YTApiClusterSetup & {isLocalCluster?: boolean} {\n const {\n clusterConfig,\n ytConfig: {isLocalCluster},\n } = getClusterConfig(cluster);\n if (!clusterConfig) {\n throw new Error(`Cluster '${cluster}' is not found`);\n }\n\n return {isLocalCluster, ...getClusterSetup(clusterConfig)};\n}\n\nexport function getRobotYTApiSetup(cluster: string): YTApiUserSetup {\n const oauthToken = getRobotOAuthToken(cluster);\n const config = getYTApiClusterSetup(cluster);\n\n const {setup, ...rest} = config;\n\n const authHeaders: Record<string, string> =\n setup.authentication && setup.authentication !== 'none'\n ? {\n Authorization: `OAuth ${oauthToken}`,\n }\n : {};\n\n return {\n setup: {\n ...setup,\n authentication:\n setup.authentication && setup.authentication !== 'none'\n ? {\n type: 'oauth',\n token: oauthToken!,\n }\n : 'none',\n },\n authHeaders,\n ...rest,\n };\n}\n\n/**\n * @param cluster\n * @param req\n * @returns undefined when cluster is not found\n */\nexport function getUserYTApiSetup(cluster: string, req: Request): YTApiUserSetup {\n const {setup, ...rest} = getYTApiClusterSetup(cluster);\n const {authentication} = setup;\n\n const authHeaders =\n authentication && authentication !== 'none' ? req.yt.ytApiAuthHeaders || {} : {};\n\n Object.assign(setup, {requestHeaders: {...authHeaders}});\n\n return {\n ...rest,\n setup,\n authHeaders,\n };\n}\n\nexport type YTApiUserSetup = ReturnType<typeof getYTApiClusterSetup> & {\n authHeaders: Record<string, string>;\n};\n"],"mappings":";;;;AAIA,SAAQA,gBAAgB,QAAO,qBAAqB;AACpD,SAAQC,MAAM,QAAO,kBAAkB;AAEvC,SAASC,kBAAkBA,CAACC,OAAe,EAAE;EACzC,IAAAC,IAAA,GAA4BH,MAAM,CAAC,CAAC,CAACI,MAAM;IAApCC,iBAAiB,GAAAF,IAAA,CAAjBE,iBAAiB;EAExB,IAAIC,UAAU,GAAG,EAAE;EAEnB,IAAID,iBAAiB,EAAE;IAAA,IAAAE,QAAA,EAAAC,SAAA;IACnBF,UAAU;IACN;IACA,EAAAC,QAAA,GAAAE,OAAO,CAACJ,iBAAiB,CAAC,cAAAE,QAAA,gBAAAA,QAAA,GAA1BA,QAAA,CAA6BL,OAAO,CAAC,cAAAK,QAAA,uBAArCA,QAAA,CAAuCD,UAAU,OACjD;IAAA,CAAAE,SAAA,GACAC,OAAO,CAACJ,iBAAiB,CAAC,cAAAG,SAAA,uBAA1BA,SAAA,CAA4BF,UAAU,EAAC,CAAC;EAChD;;EAEA,OAAOA,UAAU;AACrB;AAYA,SAASI,eAAeA,CAACC,aAA4B,EAGnD;EACE,IAAOC,KAAK,GAAID,aAAa,CAAtBC,KAAK;EACZ,IAAMC,MAAM,GAAGC,OAAO,CAACH,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEE,MAAM,CAAC;EAE7C,OAAO;IACHE,KAAK,EAAE;MACHC,EAAE,EAAEL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEK,EAAE;MACrBJ,KAAK,EAALA,KAAK;MACLK,cAAc,EAAE,CAAAN,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,cAAc,KAAI,MAAM;MACvDJ,MAAM,EAANA,MAAM;MACNK,oBAAoB,EAAE,IAAI;MAC1BC,aAAa,EAAE,KAAK;MACpBC,OAAO,EAAE;IACb,CAAC;IACDC,YAAY,EAAER,MAAM,cAAAS,MAAA,CAAcV,KAAK,cAAAU,MAAA,CAAeV,KAAK;EAC/D,CAAC;AACL;AAIA,OAAO,SAASW,oBAAoBA,CAChCrB,OAAe,EAC+B;EAC9C,IAAAsB,iBAAA,GAGIzB,gBAAgB,CAACG,OAAO,CAAC;IAFzBS,aAAa,GAAAa,iBAAA,CAAbb,aAAa;IACFc,cAAc,GAAAD,iBAAA,CAAzBE,QAAQ,CAAGD,cAAc;EAE7B,IAAI,CAACd,aAAa,EAAE;IAChB,MAAM,IAAIgB,KAAK,aAAAL,MAAA,CAAapB,OAAO,mBAAgB,CAAC;EACxD;EAEA,OAAA0B,aAAA;IAAQH,cAAc,EAAdA;EAAc,GAAKf,eAAe,CAACC,aAAa,CAAC;AAC7D;AAEA,OAAO,SAASkB,kBAAkBA,CAAC3B,OAAe,EAAkB;EAChE,IAAMI,UAAU,GAAGL,kBAAkB,CAACC,OAAO,CAAC;EAC9C,IAAME,MAAM,GAAGmB,oBAAoB,CAACrB,OAAO,CAAC;EAE5C,IAAOa,KAAK,GAAaX,MAAM,CAAxBW,KAAK;IAAKe,IAAI,GAAAC,wBAAA,CAAI3B,MAAM,EAAA4B,SAAA;EAE/B,IAAMC,WAAmC,GACrClB,KAAK,CAACE,cAAc,IAAIF,KAAK,CAACE,cAAc,KAAK,MAAM,GACjD;IACIiB,aAAa,WAAAZ,MAAA,CAAWhB,UAAU;EACtC,CAAC,GACD,CAAC,CAAC;EAEZ,OAAAsB,aAAA;IACIb,KAAK,EAAAa,aAAA,CAAAA,aAAA,KACEb,KAAK;MACRE,cAAc,EACVF,KAAK,CAACE,cAAc,IAAIF,KAAK,CAACE,cAAc,KAAK,MAAM,GACjD;QACIkB,IAAI,EAAE,OAAO;QACbC,KAAK,EAAE9B;MACX,CAAC,GACD;IAAM,EACnB;IACD2B,WAAW,EAAXA;EAAW,GACRH,IAAI;AAEf;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,iBAAiBA,CAACnC,OAAe,EAAEoC,GAAY,EAAkB;EAC7E,IAAAC,qBAAA,GAAyBhB,oBAAoB,CAACrB,OAAO,CAAC;IAA/Ca,KAAK,GAAAwB,qBAAA,CAALxB,KAAK;IAAKe,IAAI,GAAAC,wBAAA,CAAAQ,qBAAA,EAAAC,UAAA;EACrB,IAAOvB,cAAc,GAAIF,KAAK,CAAvBE,cAAc;EAErB,IAAMgB,WAAW,GACbhB,cAAc,IAAIA,cAAc,KAAK,MAAM,GAAGqB,GAAG,CAACG,EAAE,CAACC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;EAEpFC,MAAM,CAACC,MAAM,CAAC7B,KAAK,EAAE;IAAC8B,cAAc,EAAAjB,aAAA,KAAMK,WAAW;EAAC,CAAC,CAAC;EAExD,OAAAL,aAAA,CAAAA,aAAA,KACOE,IAAI;IACPf,KAAK,EAALA,KAAK;IACLkB,WAAW,EAAXA;EAAW;AAEnB"}
@@ -1,18 +1,23 @@
1
1
  import { AppContext } from '@gravity-ui/nodekit';
2
+ export declare function getSettingsConfig(cluster: string): {
3
+ cluster: string;
4
+ mapNodePath?: string;
5
+ };
2
6
  export declare function isRemoteSettingsConfigured(): boolean;
3
7
  interface Params {
4
8
  ctx: AppContext;
5
9
  username: string;
10
+ cluster: string;
6
11
  }
7
- export declare function create({ ctx, username }: Params): any;
8
- export declare function get({ ctx, username }: Params): any;
12
+ export declare function create({ ctx, username, cluster }: Params): any;
13
+ export declare function get({ ctx, username, cluster }: Params): any;
9
14
  interface GetParams extends Params {
10
15
  path: string;
11
16
  }
12
- export declare function getItem({ ctx, username, path }: GetParams): any;
17
+ export declare function getItem({ ctx, username, path, cluster }: GetParams): any;
13
18
  interface SetParams extends GetParams {
14
19
  value: any;
15
20
  }
16
- export declare function setItem({ ctx, username, path, value }: SetParams): any;
17
- export declare function deleteItem({ ctx, username, path }: GetParams): any;
21
+ export declare function setItem({ ctx, username, path, value, cluster }: SetParams): any;
22
+ export declare function deleteItem({ ctx, username, path, cluster }: GetParams): any;
18
23
  export {};
@@ -1,15 +1,18 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
1
2
  import { getApp } from '../ServerFactory';
2
3
  import { getRobotYTApiSetup } from './requestsSetup';
3
4
  var yt = require('@ytsaurus/javascript-wrapper')();
4
5
  function makeConfigError() {
5
6
  return new Error('Remote user settings are not configured. Please provide userSettingsConfig.');
6
7
  }
7
- function getSettingsConfig() {
8
+ export function getSettingsConfig(cluster) {
8
9
  var userSettingsConfig = getApp().config.userSettingsConfig;
9
- return userSettingsConfig || {};
10
+ return _objectSpread({
11
+ cluster: cluster
12
+ }, userSettingsConfig);
10
13
  }
11
- function getSettingsSetup() {
12
- return getRobotYTApiSetup(getSettingsConfig().cluster).setup;
14
+ function getSettingsSetup(cluster) {
15
+ return getRobotYTApiSetup(getSettingsConfig(cluster).cluster).setup;
13
16
  }
14
17
  export function isRemoteSettingsConfigured() {
15
18
  var userSettingsConfig = getApp().config.userSettingsConfig;
@@ -17,7 +20,8 @@ export function isRemoteSettingsConfigured() {
17
20
  }
18
21
  export function create(_ref) {
19
22
  var ctx = _ref.ctx,
20
- username = _ref.username;
23
+ username = _ref.username,
24
+ cluster = _ref.cluster;
21
25
  ctx.log('settings.create', {
22
26
  username: username
23
27
  });
@@ -25,9 +29,9 @@ export function create(_ref) {
25
29
  return Promise.reject(makeConfigError());
26
30
  }
27
31
  return yt.v3.create({
28
- setup: getSettingsSetup(),
32
+ setup: getSettingsSetup(cluster),
29
33
  parameters: {
30
- path: getSettingsConfig().mapNodePath + '/' + username,
34
+ path: getSettingsConfig(cluster).mapNodePath + '/' + username,
31
35
  type: 'document',
32
36
  ignore_existing: true,
33
37
  // No error if exists
@@ -39,17 +43,19 @@ export function create(_ref) {
39
43
  }
40
44
  export function get(_ref2) {
41
45
  var ctx = _ref2.ctx,
42
- username = _ref2.username;
46
+ username = _ref2.username,
47
+ cluster = _ref2.cluster;
43
48
  ctx.log('settings.get', {
44
- username: username
49
+ username: username,
50
+ cluster: cluster
45
51
  });
46
52
  if (!isRemoteSettingsConfigured()) {
47
53
  return Promise.reject(makeConfigError());
48
54
  }
49
55
  return yt.v3.get({
50
- setup: getSettingsSetup(),
56
+ setup: getSettingsSetup(cluster),
51
57
  parameters: {
52
- path: getSettingsConfig().mapNodePath + '/' + username,
58
+ path: getSettingsConfig(cluster).mapNodePath + '/' + username,
53
59
  output_format: {
54
60
  $value: 'json',
55
61
  $attributes: {
@@ -62,7 +68,8 @@ export function get(_ref2) {
62
68
  export function getItem(_ref3) {
63
69
  var ctx = _ref3.ctx,
64
70
  username = _ref3.username,
65
- path = _ref3.path;
71
+ path = _ref3.path,
72
+ cluster = _ref3.cluster;
66
73
  ctx.log('settings.getItem', {
67
74
  username: username,
68
75
  path: path
@@ -71,9 +78,9 @@ export function getItem(_ref3) {
71
78
  return Promise.reject(makeConfigError());
72
79
  }
73
80
  return yt.v3.get({
74
- setup: getSettingsSetup(),
81
+ setup: getSettingsSetup(cluster),
75
82
  parameters: {
76
- path: getSettingsConfig().mapNodePath + '/' + username + '/' + path,
83
+ path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path,
77
84
  output_format: {
78
85
  $value: 'json',
79
86
  $attributes: {
@@ -87,19 +94,21 @@ export function setItem(_ref4) {
87
94
  var ctx = _ref4.ctx,
88
95
  username = _ref4.username,
89
96
  path = _ref4.path,
90
- value = _ref4.value;
97
+ value = _ref4.value,
98
+ cluster = _ref4.cluster;
91
99
  ctx.log('settings.setItem', {
92
100
  username: username,
93
101
  path: path,
94
- value: value
102
+ value: value,
103
+ cluster: cluster
95
104
  });
96
105
  if (!isRemoteSettingsConfigured()) {
97
106
  return Promise.reject(makeConfigError());
98
107
  }
99
108
  return yt.v3.set({
100
- setup: getSettingsSetup(),
109
+ setup: getSettingsSetup(cluster),
101
110
  parameters: {
102
- path: getSettingsConfig().mapNodePath + '/' + username + '/' + path,
111
+ path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path,
103
112
  input_format: {
104
113
  $value: 'json',
105
114
  $attributes: {
@@ -113,18 +122,20 @@ export function setItem(_ref4) {
113
122
  export function deleteItem(_ref5) {
114
123
  var ctx = _ref5.ctx,
115
124
  username = _ref5.username,
116
- path = _ref5.path;
125
+ path = _ref5.path,
126
+ cluster = _ref5.cluster;
117
127
  ctx.log('settings.deleteItem', {
118
128
  username: username,
119
- path: path
129
+ path: path,
130
+ cluster: cluster
120
131
  });
121
132
  if (!isRemoteSettingsConfigured()) {
122
133
  return Promise.reject(makeConfigError());
123
134
  }
124
135
  return yt.v3.remove({
125
- setup: getSettingsSetup(),
136
+ setup: getSettingsSetup(cluster),
126
137
  parameters: {
127
- path: getSettingsConfig().mapNodePath + '/' + username + '/' + path
138
+ path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path
128
139
  }
129
140
  });
130
141
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getApp","getRobotYTApiSetup","yt","require","makeConfigError","Error","getSettingsConfig","userSettingsConfig","config","getSettingsSetup","cluster","setup","isRemoteSettingsConfigured","Boolean","create","_ref","ctx","username","log","Promise","reject","v3","parameters","path","mapNodePath","type","ignore_existing","attributes","value","get","_ref2","output_format","$value","$attributes","encode_utf8","getItem","_ref3","setItem","_ref4","set","input_format","data","deleteItem","_ref5","remove"],"sources":["settings.ts"],"sourcesContent":["import {AppContext} from '@gravity-ui/nodekit';\nimport {YTCoreConfig} from '../../@types/core';\nimport {getApp} from '../ServerFactory';\nimport {getRobotYTApiSetup} from './requestsSetup';\n\nconst yt = require('@ytsaurus/javascript-wrapper')();\n\nfunction makeConfigError() {\n return new Error('Remote user settings are not configured. Please provide userSettingsConfig.');\n}\n\nfunction getSettingsConfig(): Partial<Required<YTCoreConfig>['userSettingsConfig']> {\n const {userSettingsConfig} = getApp().config;\n return userSettingsConfig || {};\n}\n\nfunction getSettingsSetup() {\n return getRobotYTApiSetup(getSettingsConfig().cluster!).setup;\n}\n\nexport function isRemoteSettingsConfigured() {\n const {userSettingsConfig} = getApp().config;\n return Boolean(userSettingsConfig);\n}\n\ninterface Params {\n ctx: AppContext;\n username: string;\n}\n\nexport function create({ctx, username}: Params) {\n ctx.log('settings.create', {username});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.create({\n setup: getSettingsSetup(),\n parameters: {\n path: getSettingsConfig().mapNodePath + '/' + username,\n type: 'document',\n ignore_existing: true, // No error if exists\n attributes: {\n value: {},\n },\n },\n });\n}\n\nexport function get({ctx, username}: Params) {\n ctx.log('settings.get', {username});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.get({\n setup: getSettingsSetup(),\n parameters: {\n path: getSettingsConfig().mapNodePath + '/' + username,\n output_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n });\n}\n\ninterface GetParams extends Params {\n path: string;\n}\nexport function getItem({ctx, username, path}: GetParams) {\n ctx.log('settings.getItem', {username, path});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.get({\n setup: getSettingsSetup(),\n parameters: {\n path: getSettingsConfig().mapNodePath + '/' + username + '/' + path,\n output_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n });\n}\n\ninterface SetParams extends GetParams {\n value: any;\n}\nexport function setItem({ctx, username, path, value}: SetParams) {\n ctx.log('settings.setItem', {username, path, value});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.set({\n setup: getSettingsSetup(),\n parameters: {\n path: getSettingsConfig().mapNodePath + '/' + username + '/' + path,\n input_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n data: value,\n });\n}\nexport function deleteItem({ctx, username, path}: GetParams) {\n ctx.log('settings.deleteItem', {username, path});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.remove({\n setup: getSettingsSetup(),\n parameters: {\n path: getSettingsConfig().mapNodePath + '/' + username + '/' + path,\n },\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["getApp","getRobotYTApiSetup","yt","require","makeConfigError","Error","getSettingsConfig","cluster","userSettingsConfig","config","_objectSpread","getSettingsSetup","setup","isRemoteSettingsConfigured","Boolean","create","_ref","ctx","username","log","Promise","reject","v3","parameters","path","mapNodePath","type","ignore_existing","attributes","value","get","_ref2","output_format","$value","$attributes","encode_utf8","getItem","_ref3","setItem","_ref4","set","input_format","data","deleteItem","_ref5","remove"],"sources":["settings.ts"],"sourcesContent":["import {AppContext} from '@gravity-ui/nodekit';\nimport {getApp} from '../ServerFactory';\nimport {getRobotYTApiSetup} from './requestsSetup';\n\nconst yt = require('@ytsaurus/javascript-wrapper')();\n\nfunction makeConfigError() {\n return new Error('Remote user settings are not configured. Please provide userSettingsConfig.');\n}\n\nexport function getSettingsConfig(cluster: string): {\n cluster: string;\n mapNodePath?: string;\n} {\n const {userSettingsConfig} = getApp().config;\n\n return {\n cluster,\n ...userSettingsConfig,\n };\n}\n\nfunction getSettingsSetup(cluster: string) {\n return getRobotYTApiSetup(getSettingsConfig(cluster).cluster).setup;\n}\n\nexport function isRemoteSettingsConfigured() {\n const {userSettingsConfig} = getApp().config;\n return Boolean(userSettingsConfig);\n}\n\ninterface Params {\n ctx: AppContext;\n username: string;\n cluster: string;\n}\n\nexport function create({ctx, username, cluster}: Params) {\n ctx.log('settings.create', {username});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.create({\n setup: getSettingsSetup(cluster),\n parameters: {\n path: getSettingsConfig(cluster).mapNodePath + '/' + username,\n type: 'document',\n ignore_existing: true, // No error if exists\n attributes: {\n value: {},\n },\n },\n });\n}\n\nexport function get({ctx, username, cluster}: Params) {\n ctx.log('settings.get', {username, cluster});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.get({\n setup: getSettingsSetup(cluster),\n parameters: {\n path: getSettingsConfig(cluster).mapNodePath + '/' + username,\n output_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n });\n}\n\ninterface GetParams extends Params {\n path: string;\n}\nexport function getItem({ctx, username, path, cluster}: GetParams) {\n ctx.log('settings.getItem', {username, path});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.get({\n setup: getSettingsSetup(cluster),\n parameters: {\n path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path,\n output_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n });\n}\n\ninterface SetParams extends GetParams {\n value: any;\n}\nexport function setItem({ctx, username, path, value, cluster}: SetParams) {\n ctx.log('settings.setItem', {username, path, value, cluster});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.set({\n setup: getSettingsSetup(cluster),\n parameters: {\n path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path,\n input_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n data: value,\n });\n}\nexport function deleteItem({ctx, username, path, cluster}: GetParams) {\n ctx.log('settings.deleteItem', {username, path, cluster});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.remove({\n setup: getSettingsSetup(cluster),\n parameters: {\n path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path,\n },\n });\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  interface PresetConfig {
2
- cluster: string;
2
+ cluster?: string;
3
3
  dynamicTablePath: string;
4
4
  }
5
- export declare function getColumnPreset({ cluster, dynamicTablePath }: PresetConfig, hash: string): Promise<Array<string> | undefined>;
6
- export declare function saveColumnPreset({ cluster, dynamicTablePath }: PresetConfig, columns: unknown | Array<string>): Promise<string>;
5
+ export declare function getColumnPreset({ dynamicTablePath, cluster }: PresetConfig, hash: string, ytAuthCluster: string): Promise<Array<string> | undefined>;
6
+ export declare function saveColumnPreset({ dynamicTablePath, cluster }: PresetConfig, columns: unknown | Array<string>, ytAuthCluster: string): Promise<string>;
7
7
  export {};
@@ -7,23 +7,23 @@ import ytLib from '@ytsaurus/javascript-wrapper';
7
7
  import { getRobotYTApiSetup } from './requestsSetup';
8
8
  var yt = ytLib();
9
9
  var SHA1_REGEXP = /^[0-9a-f]{40}$/;
10
- export function getColumnPreset(_x, _x2) {
10
+ export function getColumnPreset(_x, _x2, _x3) {
11
11
  return _getColumnPreset.apply(this, arguments);
12
12
  }
13
13
  function _getColumnPreset() {
14
- _getColumnPreset = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref, hash) {
15
- var cluster, dynamicTablePath, _getRobotYTApiSetup, setupConfig, query, result, columns;
14
+ _getColumnPreset = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref, hash, ytAuthCluster) {
15
+ var dynamicTablePath, cluster, _getRobotYTApiSetup, setupConfig, query, result, columns;
16
16
  return _regeneratorRuntime.wrap(function _callee$(_context) {
17
17
  while (1) switch (_context.prev = _context.next) {
18
18
  case 0:
19
- cluster = _ref.cluster, dynamicTablePath = _ref.dynamicTablePath;
19
+ dynamicTablePath = _ref.dynamicTablePath, cluster = _ref.cluster;
20
20
  if (SHA1_REGEXP.test(hash)) {
21
21
  _context.next = 3;
22
22
  break;
23
23
  }
24
24
  throw new Error('The hash parameter should be defined as a valid sha1-hash string');
25
25
  case 3:
26
- _getRobotYTApiSetup = getRobotYTApiSetup(cluster), setupConfig = _getRobotYTApiSetup.setup;
26
+ _getRobotYTApiSetup = getRobotYTApiSetup(cluster || ytAuthCluster), setupConfig = _getRobotYTApiSetup.setup;
27
27
  query = "* FROM [".concat(dynamicTablePath, "] WHERE hash=\"").concat(hash, "\" LIMIT 1");
28
28
  _context.next = 7;
29
29
  return yt.v3.selectRows({
@@ -74,16 +74,16 @@ function _getColumnPreset() {
74
74
  }));
75
75
  return _getColumnPreset.apply(this, arguments);
76
76
  }
77
- export function saveColumnPreset(_x3, _x4) {
77
+ export function saveColumnPreset(_x4, _x5, _x6) {
78
78
  return _saveColumnPreset.apply(this, arguments);
79
79
  }
80
80
  function _saveColumnPreset() {
81
- _saveColumnPreset = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2, columns) {
82
- var cluster, dynamicTablePath, _getRobotYTApiSetup2, setupConfig, hash;
81
+ _saveColumnPreset = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2, columns, ytAuthCluster) {
82
+ var dynamicTablePath, cluster, _getRobotYTApiSetup2, setupConfig, hash;
83
83
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
84
84
  while (1) switch (_context2.prev = _context2.next) {
85
85
  case 0:
86
- cluster = _ref2.cluster, dynamicTablePath = _ref2.dynamicTablePath;
86
+ dynamicTablePath = _ref2.dynamicTablePath, cluster = _ref2.cluster;
87
87
  if (!(!Array.isArray(columns) || _some(columns, function (i) {
88
88
  return 'string' !== typeof i;
89
89
  }))) {
@@ -92,7 +92,7 @@ function _saveColumnPreset() {
92
92
  }
93
93
  throw new Error('Request body should contain JSON-array of strings');
94
94
  case 3:
95
- _getRobotYTApiSetup2 = getRobotYTApiSetup(cluster), setupConfig = _getRobotYTApiSetup2.setup;
95
+ _getRobotYTApiSetup2 = getRobotYTApiSetup(cluster || ytAuthCluster), setupConfig = _getRobotYTApiSetup2.setup;
96
96
  hash = objectHash.sha1(columns);
97
97
  _context2.next = 7;
98
98
  return yt.v3.insertRows({
@@ -1 +1 @@
1
- {"version":3,"names":["objectHash","ytLib","getRobotYTApiSetup","yt","SHA1_REGEXP","getColumnPreset","_x","_x2","_getColumnPreset","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","hash","cluster","dynamicTablePath","_getRobotYTApiSetup","setupConfig","query","result","columns","wrap","_callee$","_context","prev","next","test","Error","setup","concat","v3","selectRows","parameters","output_format","$value","$attributes","field_weight_limit","encode_utf8","sent","abrupt","undefined","JSON","parse","columns_json","t0","Array","isArray","_some","i","stop","saveColumnPreset","_x3","_x4","_saveColumnPreset","_callee2","_ref2","_getRobotYTApiSetup2","_callee2$","_context2","sha1","insertRows","path","input_format","data","stringify"],"sources":["table.ts"],"sourcesContent":["import _ from 'lodash';\nimport objectHash from 'object-hash';\n// @ts-ignore-next-line\nimport ytLib from '@ytsaurus/javascript-wrapper';\nimport {getRobotYTApiSetup} from './requestsSetup';\n\nconst yt = ytLib();\n\nconst SHA1_REGEXP = /^[0-9a-f]{40}$/;\n\ninterface PresetConfig {\n cluster: string;\n dynamicTablePath: string;\n}\n\nexport async function getColumnPreset(\n {cluster, dynamicTablePath}: PresetConfig,\n hash: string,\n): Promise<Array<string> | undefined> {\n if (!SHA1_REGEXP.test(hash)) {\n throw new Error('The hash parameter should be defined as a valid sha1-hash string');\n }\n\n const {setup: setupConfig} = getRobotYTApiSetup(cluster);\n\n const query = `* FROM [${dynamicTablePath}] WHERE hash=\"${hash}\" LIMIT 1`;\n const result = await yt.v3.selectRows({\n setup: setupConfig,\n parameters: {\n query,\n output_format: {\n $value: 'json',\n $attributes: {\n field_weight_limit: 100000,\n encode_utf8: 'false',\n },\n },\n },\n });\n\n if (!result) {\n return undefined;\n }\n\n let columns: Array<string> = [];\n try {\n columns = JSON.parse(JSON.parse(result).columns_json);\n } catch (e) {\n throw new Error(`Failed to parse ${hash}-preset`);\n }\n\n if (!Array.isArray(columns) || _.some(columns, (i) => 'string' !== typeof i)) {\n throw new Error(`${hash}-preset is not an array of strings`);\n }\n return columns;\n}\n\nexport async function saveColumnPreset(\n {cluster, dynamicTablePath}: PresetConfig,\n columns: unknown | Array<string>,\n): Promise<string> {\n if (!Array.isArray(columns) || _.some(columns, (i) => 'string' !== typeof i)) {\n throw new Error('Request body should contain JSON-array of strings');\n }\n\n const {setup: setupConfig} = getRobotYTApiSetup(cluster);\n\n const hash = objectHash.sha1(columns);\n\n await yt.v3.insertRows({\n setup: setupConfig,\n parameters: {\n path: dynamicTablePath,\n input_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n data: [{hash, columns_json: JSON.stringify(columns)}],\n });\n\n return hash;\n}\n"],"mappings":";;;AACA,OAAOA,UAAU,MAAM,aAAa;AACpC;AACA,OAAOC,KAAK,MAAM,8BAA8B;AAChD,SAAQC,kBAAkB,QAAO,iBAAiB;AAElD,IAAMC,EAAE,GAAGF,KAAK,CAAC,CAAC;AAElB,IAAMG,WAAW,GAAG,gBAAgB;AAOpC,gBAAsBC,eAAeA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,gBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAwCpC,SAAAF,iBAAA;EAAAA,gBAAA,GAAAG,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAxCM,SAAAC,QAAAC,IAAA,EAEHC,IAAY;IAAA,IAAAC,OAAA,EAAAC,gBAAA,EAAAC,mBAAA,EAAAC,WAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,OAAA;IAAA,OAAAX,mBAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UADXX,OAAO,GAAAF,IAAA,CAAPE,OAAO,EAAEC,gBAAgB,GAAAH,IAAA,CAAhBG,gBAAgB;UAAA,IAGrBd,WAAW,CAACyB,IAAI,CAACb,IAAI,CAAC;YAAAU,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,MACjB,IAAIE,KAAK,CAAC,kEAAkE,CAAC;QAAA;UAAAX,mBAAA,GAG1DjB,kBAAkB,CAACe,OAAO,CAAC,EAA1CG,WAAW,GAAAD,mBAAA,CAAlBY,KAAK;UAENV,KAAK,cAAAW,MAAA,CAAcd,gBAAgB,qBAAAc,MAAA,CAAiBhB,IAAI;UAAAU,QAAA,CAAAE,IAAA;UAAA,OACzCzB,EAAE,CAAC8B,EAAE,CAACC,UAAU,CAAC;YAClCH,KAAK,EAAEX,WAAW;YAClBe,UAAU,EAAE;cACRd,KAAK,EAALA,KAAK;cACLe,aAAa,EAAE;gBACXC,MAAM,EAAE,MAAM;gBACdC,WAAW,EAAE;kBACTC,kBAAkB,EAAE,MAAM;kBAC1BC,WAAW,EAAE;gBACjB;cACJ;YACJ;UACJ,CAAC,CAAC;QAAA;UAZIlB,MAAM,GAAAI,QAAA,CAAAe,IAAA;UAAA,IAcPnB,MAAM;YAAAI,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAgB,MAAA,WACAC,SAAS;QAAA;UAGhBpB,OAAsB,GAAG,EAAE;UAAAG,QAAA,CAAAC,IAAA;UAE3BJ,OAAO,GAAGqB,IAAI,CAACC,KAAK,CAACD,IAAI,CAACC,KAAK,CAACvB,MAAM,CAAC,CAACwB,YAAY,CAAC;UAACpB,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAqB,EAAA,GAAArB,QAAA;UAAA,MAEhD,IAAII,KAAK,oBAAAE,MAAA,CAAoBhB,IAAI,YAAS,CAAC;QAAA;UAAA,MAGjD,CAACgC,KAAK,CAACC,OAAO,CAAC1B,OAAO,CAAC,IAAI2B,KAAA,CAAO3B,OAAO,EAAE,UAAC4B,CAAC;YAAA,OAAK,QAAQ,KAAK,OAAOA,CAAC;UAAA,EAAC;YAAAzB,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,MAClE,IAAIE,KAAK,IAAAE,MAAA,CAAIhB,IAAI,uCAAoC,CAAC;QAAA;UAAA,OAAAU,QAAA,CAAAgB,MAAA,WAEzDnB,OAAO;QAAA;QAAA;UAAA,OAAAG,QAAA,CAAA0B,IAAA;MAAA;IAAA,GAAAtC,OAAA;EAAA,CACjB;EAAA,OAAAN,gBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,gBAAsB2C,gBAAgBA,CAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAA/C,KAAA,OAAAC,SAAA;AAAA;AA2BrC,SAAA8C,kBAAA;EAAAA,iBAAA,GAAA7C,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CA3BM,SAAA4C,SAAAC,KAAA,EAEHnC,OAAgC;IAAA,IAAAN,OAAA,EAAAC,gBAAA,EAAAyC,oBAAA,EAAAvC,WAAA,EAAAJ,IAAA;IAAA,OAAAJ,mBAAA,CAAAY,IAAA,UAAAoC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAlC,IAAA,GAAAkC,SAAA,CAAAjC,IAAA;QAAA;UAD/BX,OAAO,GAAAyC,KAAA,CAAPzC,OAAO,EAAEC,gBAAgB,GAAAwC,KAAA,CAAhBxC,gBAAgB;UAAA,MAGtB,CAAC8B,KAAK,CAACC,OAAO,CAAC1B,OAAO,CAAC,IAAI2B,KAAA,CAAO3B,OAAO,EAAE,UAAC4B,CAAC;YAAA,OAAK,QAAQ,KAAK,OAAOA,CAAC;UAAA,EAAC;YAAAU,SAAA,CAAAjC,IAAA;YAAA;UAAA;UAAA,MAClE,IAAIE,KAAK,CAAC,mDAAmD,CAAC;QAAA;UAAA6B,oBAAA,GAG3CzD,kBAAkB,CAACe,OAAO,CAAC,EAA1CG,WAAW,GAAAuC,oBAAA,CAAlB5B,KAAK;UAENf,IAAI,GAAGhB,UAAU,CAAC8D,IAAI,CAACvC,OAAO,CAAC;UAAAsC,SAAA,CAAAjC,IAAA;UAAA,OAE/BzB,EAAE,CAAC8B,EAAE,CAAC8B,UAAU,CAAC;YACnBhC,KAAK,EAAEX,WAAW;YAClBe,UAAU,EAAE;cACR6B,IAAI,EAAE9C,gBAAgB;cACtB+C,YAAY,EAAE;gBACV5B,MAAM,EAAE,MAAM;gBACdC,WAAW,EAAE;kBACTE,WAAW,EAAE;gBACjB;cACJ;YACJ,CAAC;YACD0B,IAAI,EAAE,CAAC;cAAClD,IAAI,EAAJA,IAAI;cAAE8B,YAAY,EAAEF,IAAI,CAACuB,SAAS,CAAC5C,OAAO;YAAC,CAAC;UACxD,CAAC,CAAC;QAAA;UAAA,OAAAsC,SAAA,CAAAnB,MAAA,WAEK1B,IAAI;QAAA;QAAA;UAAA,OAAA6C,SAAA,CAAAT,IAAA;MAAA;IAAA,GAAAK,QAAA;EAAA,CACd;EAAA,OAAAD,iBAAA,CAAA/C,KAAA,OAAAC,SAAA;AAAA"}
1
+ {"version":3,"names":["objectHash","ytLib","getRobotYTApiSetup","yt","SHA1_REGEXP","getColumnPreset","_x","_x2","_x3","_getColumnPreset","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","hash","ytAuthCluster","dynamicTablePath","cluster","_getRobotYTApiSetup","setupConfig","query","result","columns","wrap","_callee$","_context","prev","next","test","Error","setup","concat","v3","selectRows","parameters","output_format","$value","$attributes","field_weight_limit","encode_utf8","sent","abrupt","undefined","JSON","parse","columns_json","t0","Array","isArray","_some","i","stop","saveColumnPreset","_x4","_x5","_x6","_saveColumnPreset","_callee2","_ref2","_getRobotYTApiSetup2","_callee2$","_context2","sha1","insertRows","path","input_format","data","stringify"],"sources":["table.ts"],"sourcesContent":["import _ from 'lodash';\nimport objectHash from 'object-hash';\n// @ts-ignore-next-line\nimport ytLib from '@ytsaurus/javascript-wrapper';\nimport {getRobotYTApiSetup} from './requestsSetup';\n\nconst yt = ytLib();\n\nconst SHA1_REGEXP = /^[0-9a-f]{40}$/;\n\ninterface PresetConfig {\n cluster?: string;\n dynamicTablePath: string;\n}\n\nexport async function getColumnPreset(\n {dynamicTablePath, cluster}: PresetConfig,\n hash: string,\n ytAuthCluster: string,\n): Promise<Array<string> | undefined> {\n if (!SHA1_REGEXP.test(hash)) {\n throw new Error('The hash parameter should be defined as a valid sha1-hash string');\n }\n\n const {setup: setupConfig} = getRobotYTApiSetup(cluster || ytAuthCluster);\n\n const query = `* FROM [${dynamicTablePath}] WHERE hash=\"${hash}\" LIMIT 1`;\n const result = await yt.v3.selectRows({\n setup: setupConfig,\n parameters: {\n query,\n output_format: {\n $value: 'json',\n $attributes: {\n field_weight_limit: 100000,\n encode_utf8: 'false',\n },\n },\n },\n });\n\n if (!result) {\n return undefined;\n }\n\n let columns: Array<string> = [];\n try {\n columns = JSON.parse(JSON.parse(result).columns_json);\n } catch (e) {\n throw new Error(`Failed to parse ${hash}-preset`);\n }\n\n if (!Array.isArray(columns) || _.some(columns, (i) => 'string' !== typeof i)) {\n throw new Error(`${hash}-preset is not an array of strings`);\n }\n return columns;\n}\n\nexport async function saveColumnPreset(\n {dynamicTablePath, cluster}: PresetConfig,\n columns: unknown | Array<string>,\n ytAuthCluster: string,\n): Promise<string> {\n if (!Array.isArray(columns) || _.some(columns, (i) => 'string' !== typeof i)) {\n throw new Error('Request body should contain JSON-array of strings');\n }\n\n const {setup: setupConfig} = getRobotYTApiSetup(cluster || ytAuthCluster);\n\n const hash = objectHash.sha1(columns);\n\n await yt.v3.insertRows({\n setup: setupConfig,\n parameters: {\n path: dynamicTablePath,\n input_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n data: [{hash, columns_json: JSON.stringify(columns)}],\n });\n\n return hash;\n}\n"],"mappings":"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"}
@@ -1,6 +1,4 @@
1
1
  import { AppConfig } from '@gravity-ui/nodekit';
2
2
  import type { Response } from 'express';
3
3
  export declare function isYtAuthEnabled(config: AppConfig): boolean;
4
- export declare function assertAuthEnabled(ytAuthCluster?: string): asserts ytAuthCluster is string;
5
- export declare function getAuthCluster(config: AppConfig): string;
6
4
  export declare function YTAuthLogout(res: Response): void;