@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.
- package/README.md +6 -11
- package/build/cjs/@types/core.d.ts +7 -7
- package/build/cjs/server/components/layout-config.js +3 -3
- package/build/cjs/server/components/layout-config.js.map +1 -1
- package/build/cjs/server/components/requestsSetup.js +13 -5
- package/build/cjs/server/components/requestsSetup.js.map +1 -1
- package/build/cjs/server/components/settings.d.ts +10 -5
- package/build/cjs/server/components/settings.js +24 -23
- package/build/cjs/server/components/settings.js.map +1 -1
- package/build/cjs/server/components/table.d.ts +3 -3
- package/build/cjs/server/components/table.js +4 -4
- package/build/cjs/server/components/table.js.map +1 -1
- package/build/cjs/server/components/yt-auth.d.ts +0 -2
- package/build/cjs/server/components/yt-auth.js +5 -14
- package/build/cjs/server/components/yt-auth.js.map +1 -1
- package/build/cjs/server/configs/common.js +5 -13
- package/build/cjs/server/configs/common.js.map +1 -1
- package/build/cjs/server/configs/local.js +0 -5
- package/build/cjs/server/configs/local.js.map +1 -1
- package/build/cjs/server/controllers/chyt-api.js +1 -1
- package/build/cjs/server/controllers/chyt-api.js.map +1 -1
- package/build/cjs/server/controllers/cluster-info.js +2 -2
- package/build/cjs/server/controllers/cluster-info.js.map +1 -1
- package/build/cjs/server/controllers/cluster-params.js +1 -1
- package/build/cjs/server/controllers/cluster-params.js.map +1 -1
- package/build/cjs/server/controllers/clusters.d.ts +1 -0
- package/build/cjs/server/controllers/clusters.js +24 -1
- package/build/cjs/server/controllers/clusters.js.map +1 -1
- package/build/cjs/server/controllers/home.js +10 -6
- package/build/cjs/server/controllers/home.js.map +1 -1
- package/build/cjs/server/controllers/login.js +18 -5
- package/build/cjs/server/controllers/login.js.map +1 -1
- package/build/cjs/server/controllers/odin-proxy-api.js +1 -1
- package/build/cjs/server/controllers/odin-proxy-api.js.map +1 -1
- package/build/cjs/server/controllers/scheduling-pools.js +2 -2
- package/build/cjs/server/controllers/scheduling-pools.js.map +1 -1
- package/build/cjs/server/controllers/settings.js +10 -10
- package/build/cjs/server/controllers/settings.js.map +1 -1
- package/build/cjs/server/controllers/table-column-preset.js +4 -3
- package/build/cjs/server/controllers/table-column-preset.js.map +1 -1
- package/build/cjs/server/controllers/yt-api.js +1 -1
- package/build/cjs/server/controllers/yt-api.js.map +1 -1
- package/build/cjs/server/controllers/yt-proxy-api.js +2 -2
- package/build/cjs/server/controllers/yt-proxy-api.js.map +1 -1
- package/build/cjs/server/index.js +11 -8
- package/build/cjs/server/index.js.map +1 -1
- package/build/cjs/server/middlewares/authorization.d.ts +1 -1
- package/build/cjs/server/middlewares/authorization.js +3 -2
- package/build/cjs/server/middlewares/authorization.js.map +1 -1
- package/build/cjs/server/middlewares/yt-auth.js +3 -2
- package/build/cjs/server/middlewares/yt-auth.js.map +1 -1
- package/build/cjs/server/routes.js +26 -25
- package/build/cjs/server/routes.js.map +1 -1
- package/build/cjs/server/utils/index.d.ts +1 -1
- package/build/cjs/server/utils/index.js +12 -4
- package/build/cjs/server/utils/index.js.map +1 -1
- package/build/cjs/shared/yt-types.d.ts +1 -0
- package/build/cjs/ui/common/utils/settings-remote-provider.d.ts +5 -5
- package/build/cjs/ui/common/utils/settings-remote-provider.js +42 -16
- package/build/cjs/ui/common/utils/settings-remote-provider.js.map +1 -1
- package/build/cjs/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
- package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
- package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
- package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
- package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js +7 -4
- package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
- package/build/cjs/ui/config/ui-settings.d.ts +1 -0
- package/build/cjs/ui/config/ui-settings.js +3 -2
- package/build/cjs/ui/config/ui-settings.js.map +1 -1
- package/build/cjs/ui/constants/index.d.ts +7 -0
- package/build/cjs/ui/constants/index.js +3 -1
- package/build/cjs/ui/constants/index.js.map +1 -1
- package/build/cjs/ui/containers/App/App.js +4 -3
- package/build/cjs/ui/containers/App/App.js.map +1 -1
- package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
- package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
- package/build/cjs/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
- package/build/cjs/ui/containers/ClusterPage/ClusterPage.js +3 -1
- package/build/cjs/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
- package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
- package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js +11 -3
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
- package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
- package/build/cjs/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
- package/build/cjs/ui/entries/main.js +4 -1
- package/build/cjs/ui/entries/main.js.map +1 -1
- package/build/cjs/ui/pages/operations/selectors.d.ts +5 -0
- package/build/cjs/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
- package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
- package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
- package/build/cjs/ui/pages/system/Chunks/Chunks.d.ts +1 -1
- package/build/cjs/ui/store/actions/cluster-params.d.ts +1 -0
- package/build/cjs/ui/store/actions/cluster-params.js +13 -0
- package/build/cjs/ui/store/actions/cluster-params.js.map +1 -1
- package/build/cjs/ui/store/actions/clusters-menu.d.ts +1 -0
- package/build/cjs/ui/store/actions/clusters-menu.js +22 -2
- package/build/cjs/ui/store/actions/clusters-menu.js.map +1 -1
- package/build/cjs/ui/store/actions/global/index.d.ts +3 -1
- package/build/cjs/ui/store/actions/global/index.js +19 -4
- package/build/cjs/ui/store/actions/global/index.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
- package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
- package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/content/table/table.js +2 -1
- package/build/cjs/ui/store/actions/navigation/content/table/table.js.map +1 -1
- package/build/cjs/ui/store/actions/settings/index.js +25 -19
- package/build/cjs/ui/store/actions/settings/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/accounts/usage/index.d.ts +1 -1
- package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
- package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js +8 -0
- package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
- package/build/cjs/ui/store/reducers/index.d.ts +5 -0
- package/build/cjs/ui/store/reducers/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/settings.js +1 -1
- package/build/cjs/ui/store/reducers/settings.js.map +1 -1
- package/build/cjs/ui/store/selectors/accounts/account-usage.d.ts +40 -0
- package/build/cjs/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
- package/build/cjs/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
- package/build/cjs/ui/store/selectors/chyt/index.d.ts +35 -0
- package/build/cjs/ui/store/selectors/components/node/memory.d.ts +35 -0
- package/build/cjs/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
- package/build/cjs/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
- package/build/cjs/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
- package/build/cjs/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
- package/build/cjs/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
- package/build/cjs/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
- package/build/cjs/ui/store/selectors/global/index.d.ts +912 -0
- package/build/cjs/ui/store/selectors/global/index.js +10 -1
- package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
- package/build/cjs/ui/store/selectors/global/supported-features.d.ts +30 -0
- package/build/cjs/ui/store/selectors/modals/errors.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/content/document.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
- package/build/cjs/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
- package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +35 -0
- package/build/cjs/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
- package/build/cjs/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/navigation.d.ts +10 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
- package/build/cjs/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
- package/build/cjs/ui/store/selectors/operations/index.d.ts +60 -0
- package/build/cjs/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
- package/build/cjs/ui/store/selectors/operations/operation.d.ts +60 -0
- package/build/cjs/ui/store/selectors/operations/operations-list.d.ts +15 -0
- package/build/cjs/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
- package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/index.d.ts +5 -0
- package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
- package/build/cjs/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
- package/build/cjs/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
- package/build/cjs/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
- package/build/cjs/ui/store/selectors/thor/support.d.ts +25 -0
- package/build/esm/@types/core.d.ts +7 -7
- package/build/esm/server/components/layout-config.js +4 -3
- package/build/esm/server/components/layout-config.js.map +1 -1
- package/build/esm/server/components/requestsSetup.js +12 -5
- package/build/esm/server/components/requestsSetup.js.map +1 -1
- package/build/esm/server/components/settings.d.ts +10 -5
- package/build/esm/server/components/settings.js +33 -22
- package/build/esm/server/components/settings.js.map +1 -1
- package/build/esm/server/components/table.d.ts +3 -3
- package/build/esm/server/components/table.js +10 -10
- package/build/esm/server/components/table.js.map +1 -1
- package/build/esm/server/components/yt-auth.d.ts +0 -2
- package/build/esm/server/components/yt-auth.js +6 -11
- package/build/esm/server/components/yt-auth.js.map +1 -1
- package/build/esm/server/configs/common.js +4 -14
- package/build/esm/server/configs/common.js.map +1 -1
- package/build/esm/server/configs/local.js +0 -5
- package/build/esm/server/configs/local.js.map +1 -1
- package/build/esm/server/controllers/chyt-api.js +1 -1
- package/build/esm/server/controllers/chyt-api.js.map +1 -1
- package/build/esm/server/controllers/cluster-info.js +3 -3
- package/build/esm/server/controllers/cluster-info.js.map +1 -1
- package/build/esm/server/controllers/cluster-params.js +1 -1
- package/build/esm/server/controllers/cluster-params.js.map +1 -1
- package/build/esm/server/controllers/clusters.d.ts +1 -0
- package/build/esm/server/controllers/clusters.js +23 -0
- package/build/esm/server/controllers/clusters.js.map +1 -1
- package/build/esm/server/controllers/home.js +32 -28
- package/build/esm/server/controllers/home.js.map +1 -1
- package/build/esm/server/controllers/login.js +35 -21
- package/build/esm/server/controllers/login.js.map +1 -1
- package/build/esm/server/controllers/odin-proxy-api.js +1 -1
- package/build/esm/server/controllers/odin-proxy-api.js.map +1 -1
- package/build/esm/server/controllers/scheduling-pools.js +3 -3
- package/build/esm/server/controllers/scheduling-pools.js.map +1 -1
- package/build/esm/server/controllers/settings.js +26 -15
- package/build/esm/server/controllers/settings.js.map +1 -1
- package/build/esm/server/controllers/table-column-preset.js +15 -14
- package/build/esm/server/controllers/table-column-preset.js.map +1 -1
- package/build/esm/server/controllers/yt-api.js +1 -1
- package/build/esm/server/controllers/yt-api.js.map +1 -1
- package/build/esm/server/controllers/yt-proxy-api.js +3 -3
- package/build/esm/server/controllers/yt-proxy-api.js.map +1 -1
- package/build/esm/server/index.js +12 -8
- package/build/esm/server/index.js.map +1 -1
- package/build/esm/server/middlewares/authorization.d.ts +1 -1
- package/build/esm/server/middlewares/authorization.js +21 -16
- package/build/esm/server/middlewares/authorization.js.map +1 -1
- package/build/esm/server/middlewares/yt-auth.js +8 -7
- package/build/esm/server/middlewares/yt-auth.js.map +1 -1
- package/build/esm/server/routes.js +29 -26
- package/build/esm/server/routes.js.map +1 -1
- package/build/esm/server/utils/index.d.ts +1 -1
- package/build/esm/server/utils/index.js +12 -6
- package/build/esm/server/utils/index.js.map +1 -1
- package/build/esm/shared/yt-types.d.ts +1 -0
- package/build/esm/ui/common/utils/settings-remote-provider.d.ts +5 -5
- package/build/esm/ui/common/utils/settings-remote-provider.js +42 -16
- package/build/esm/ui/common/utils/settings-remote-provider.js.map +1 -1
- package/build/esm/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
- package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
- package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
- package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
- package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js +8 -5
- package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
- package/build/esm/ui/config/ui-settings.d.ts +1 -0
- package/build/esm/ui/config/ui-settings.js +2 -1
- package/build/esm/ui/config/ui-settings.js.map +1 -1
- package/build/esm/ui/constants/index.d.ts +7 -0
- package/build/esm/ui/constants/index.js +1 -0
- package/build/esm/ui/constants/index.js.map +1 -1
- package/build/esm/ui/containers/App/App.js +4 -3
- package/build/esm/ui/containers/App/App.js.map +1 -1
- package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
- package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
- package/build/esm/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
- package/build/esm/ui/containers/ClusterPage/ClusterPage.js +4 -2
- package/build/esm/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
- package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
- package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
- package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.scss +6 -0
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js +12 -4
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
- package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
- package/build/esm/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
- package/build/esm/ui/entries/main.js +4 -1
- package/build/esm/ui/entries/main.js.map +1 -1
- package/build/esm/ui/pages/operations/selectors.d.ts +5 -0
- package/build/esm/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
- package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
- package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
- package/build/esm/ui/pages/system/Chunks/Chunks.d.ts +1 -1
- package/build/esm/ui/store/actions/cluster-params.d.ts +1 -0
- package/build/esm/ui/store/actions/cluster-params.js +12 -0
- package/build/esm/ui/store/actions/cluster-params.js.map +1 -1
- package/build/esm/ui/store/actions/clusters-menu.d.ts +1 -0
- package/build/esm/ui/store/actions/clusters-menu.js +22 -3
- package/build/esm/ui/store/actions/clusters-menu.js.map +1 -1
- package/build/esm/ui/store/actions/global/index.d.ts +3 -1
- package/build/esm/ui/store/actions/global/index.js +19 -4
- package/build/esm/ui/store/actions/global/index.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
- package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
- package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/content/table/table.js +2 -1
- package/build/esm/ui/store/actions/navigation/content/table/table.js.map +1 -1
- package/build/esm/ui/store/actions/settings/index.js +25 -19
- package/build/esm/ui/store/actions/settings/index.js.map +1 -1
- package/build/esm/ui/store/reducers/accounts/usage/index.d.ts +1 -1
- package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
- package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js +9 -1
- package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
- package/build/esm/ui/store/reducers/index.d.ts +5 -0
- package/build/esm/ui/store/reducers/index.js.map +1 -1
- package/build/esm/ui/store/reducers/settings.js +1 -1
- package/build/esm/ui/store/reducers/settings.js.map +1 -1
- package/build/esm/ui/store/selectors/accounts/account-usage.d.ts +40 -0
- package/build/esm/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
- package/build/esm/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
- package/build/esm/ui/store/selectors/chyt/index.d.ts +35 -0
- package/build/esm/ui/store/selectors/components/node/memory.d.ts +35 -0
- package/build/esm/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
- package/build/esm/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
- package/build/esm/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
- package/build/esm/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
- package/build/esm/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
- package/build/esm/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
- package/build/esm/ui/store/selectors/global/index.d.ts +912 -0
- package/build/esm/ui/store/selectors/global/index.js +10 -1
- package/build/esm/ui/store/selectors/global/index.js.map +1 -1
- package/build/esm/ui/store/selectors/global/supported-features.d.ts +30 -0
- package/build/esm/ui/store/selectors/modals/errors.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/content/document.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
- package/build/esm/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
- package/build/esm/ui/store/selectors/navigation/content/table.d.ts +35 -0
- package/build/esm/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
- package/build/esm/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/navigation.d.ts +10 -0
- package/build/esm/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
- package/build/esm/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
- package/build/esm/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
- package/build/esm/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
- package/build/esm/ui/store/selectors/operations/index.d.ts +60 -0
- package/build/esm/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
- package/build/esm/ui/store/selectors/operations/operation.d.ts +60 -0
- package/build/esm/ui/store/selectors/operations/operations-list.d.ts +15 -0
- package/build/esm/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
- package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/index.d.ts +5 -0
- package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
- package/build/esm/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
- package/build/esm/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
- package/build/esm/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
- package/build/esm/ui/store/selectors/thor/support.d.ts +25 -0
- package/dist/public/build/assets-manifest.json +12 -12
- package/dist/public/build/css/main.8a4cd357.css +2 -0
- package/dist/public/build/css/main.8a4cd357.css.map +1 -0
- package/dist/public/build/js/{861.9703a31c.chunk.js → 861.a0939319.chunk.js} +2 -2
- package/dist/public/build/js/861.a0939319.chunk.js.map +1 -0
- package/dist/public/build/js/main.c39cff0d.js +3 -0
- package/dist/public/build/js/{main.5b132a95.js.map → main.c39cff0d.js.map} +1 -1
- package/dist/public/build/js/runtime.0ac0f2e8.js +2 -0
- package/dist/public/build/js/{runtime.a87a1f88.js.map → runtime.0ac0f2e8.js.map} +1 -1
- package/dist/public/build/manifest.json +8 -8
- package/dist/server/components/layout-config.js +3 -3
- package/dist/server/components/requestsSetup.js +13 -5
- package/dist/server/components/settings.d.ts +10 -5
- package/dist/server/components/settings.js +24 -23
- package/dist/server/components/table.d.ts +3 -3
- package/dist/server/components/table.js +4 -4
- package/dist/server/components/yt-auth.d.ts +0 -2
- package/dist/server/components/yt-auth.js +5 -14
- package/dist/server/configs/common.js +5 -13
- package/dist/server/configs/local.js +0 -5
- package/dist/server/controllers/chyt-api.js +1 -1
- package/dist/server/controllers/cluster-info.js +2 -2
- package/dist/server/controllers/cluster-params.js +1 -1
- package/dist/server/controllers/clusters.d.ts +1 -0
- package/dist/server/controllers/clusters.js +24 -1
- package/dist/server/controllers/home.js +10 -6
- package/dist/server/controllers/login.js +18 -5
- package/dist/server/controllers/odin-proxy-api.js +1 -1
- package/dist/server/controllers/scheduling-pools.js +2 -2
- package/dist/server/controllers/settings.js +10 -10
- package/dist/server/controllers/table-column-preset.js +4 -3
- package/dist/server/controllers/yt-api.js +1 -1
- package/dist/server/controllers/yt-proxy-api.js +2 -2
- package/dist/server/index.js +11 -8
- package/dist/server/middlewares/authorization.d.ts +1 -1
- package/dist/server/middlewares/authorization.js +3 -2
- package/dist/server/middlewares/yt-auth.js +3 -2
- package/dist/server/routes.js +26 -25
- package/dist/server/utils/index.d.ts +1 -1
- package/dist/server/utils/index.js +12 -4
- package/package.json +2 -2
- package/dist/public/build/css/main.4aa70d7b.css +0 -2
- package/dist/public/build/css/main.4aa70d7b.css.map +0 -1
- package/dist/public/build/js/861.9703a31c.chunk.js.map +0 -1
- package/dist/public/build/js/main.5b132a95.js +0 -3
- package/dist/public/build/js/runtime.a87a1f88.js +0 -2
- /package/dist/public/build/js/{main.5b132a95.js.LICENSE.txt → main.c39cff0d.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["axios","YT_CYPRESS_COOKIE_NAME","getUserYTApiSetup","getYTApiClusterSetup","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","crypto","ytLib","getXSRFToken","getAuthCluster","yt","handleLogin","_x","_x2","_handleLogin","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","req","res","ytAuthCluster","_ref","username","password","_getYTApiClusterSetup","proxyBaseUrl","requestUrl","basicAuth","wrap","_callee2$","_context2","prev","next","ctx","config","JSON","parse","body","Error","concat","Buffer","from","toString","request","url","method","headers","_objectSpread","getMetadata","Authorization","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","undefined","removeSecureFlagIfOriginInsecure","sent","stop","_x5","t0","ytAuthAllowInsecure","origin","startsWith","_reduce","acc","v","k","tmp","_map","item","replace","handleChangePassword","_x3","_x4","_handleChangePassword","_callee3","_ref3","newPassword","currentPassword","new_password_sha256","current_password_sha256","cfg","_cfg","setup","_yield$getXSRFToken","login","csrf_token","_callee3$","_context3","createHash","update","digest","abrupt","createOption","v4","setUserPassword","parameters","user","result","status","send","err","t1"],"sources":["login.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport axios from 'axios';\nimport _ from 'lodash';\nimport {YT_CYPRESS_COOKIE_NAME} from '../../shared/constants';\nimport {getUserYTApiSetup, getYTApiClusterSetup} from '../components/requestsSetup';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\nimport crypto from 'crypto';\n\n// @ts-ignore\nimport ytLib from '@ytsaurus/javascript-wrapper';\nimport {getXSRFToken} from '../components/cluster-queries';\nimport {getAuthCluster} from '../components/yt-auth';\n\nconst yt = ytLib();\n\nexport async function handleLogin(req: Request, res: Response) {\n try {\n const ytAuthCluster = getAuthCluster(req.ctx.config);\n\n const {username, password} = JSON.parse(req.body) || {};\n if (!username || !password) {\n throw new Error('Username and password must not be empty');\n }\n\n const {proxyBaseUrl} = getYTApiClusterSetup(ytAuthCluster);\n const requestUrl = `${proxyBaseUrl}/login`;\n\n const basicAuth = Buffer.from(`${username}:${password}`).toString('base64');\n\n await axios\n .request({\n url: requestUrl,\n method: req.method as any,\n headers: {...req.ctx.getMetadata(), Authorization: `Basic ${basicAuth}`},\n timeout: 10000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(\n req.ctx,\n res,\n response,\n undefined,\n (headers) => removeSecureFlagIfOriginInsecure(req, headers),\n );\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n\nfunction removeSecureFlagIfOriginInsecure(\n req: Request,\n headers: Record<string, string | Array<string>>,\n) {\n const {ytAuthAllowInsecure} = req.ctx.config;\n const {origin} = req.headers;\n\n if (!ytAuthAllowInsecure || 'string' !== typeof origin || !origin.startsWith('http://')) {\n return headers;\n }\n\n return _.reduce(\n headers,\n (acc, v, k) => {\n if (k !== 'set-cookie') {\n acc[k] = v;\n } else {\n const tmp = _.map(v as Array<string>, (item) => {\n if (item.startsWith(YT_CYPRESS_COOKIE_NAME)) {\n return item.replace(/\\s*Secure;/, '');\n }\n return item;\n });\n acc[k] = tmp;\n }\n return acc;\n },\n {} as typeof headers,\n );\n}\n\nexport async function handleChangePassword(req: Request, res: Response) {\n try {\n const ytAuthCluster = getAuthCluster(req.ctx.config);\n\n const {newPassword, currentPassword} = JSON.parse(req.body) || {};\n if (!newPassword || !currentPassword) {\n throw new Error('New and current password must not be empty');\n }\n\n const new_password_sha256 = crypto.createHash('sha256').update(newPassword).digest('hex');\n const current_password_sha256 = crypto\n .createHash('sha256')\n .update(currentPassword)\n .digest('hex');\n\n let cfg;\n try {\n cfg = getUserYTApiSetup(ytAuthCluster, req);\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 400, e);\n return;\n }\n\n const {setup} = cfg;\n const {login, csrf_token} = await getXSRFToken(req, cfg);\n\n yt.setup.createOption('requestHeaders', 'object', {\n 'X-Csrf-Token': csrf_token,\n });\n\n await yt.v4\n .setUserPassword({\n setup,\n parameters: {user: login, new_password_sha256, current_password_sha256},\n })\n .then((result: unknown) => {\n res.status(200).send({result});\n })\n .catch((err: any) => {\n sendAndLogError(req.ctx, res, 500, err);\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["axios","YT_CYPRESS_COOKIE_NAME","getUserYTApiSetup","getYTApiClusterSetup","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","crypto","ytLib","getXSRFToken","yt","handleLogin","_x","_x2","_handleLogin","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","req","res","ytAuthCluster","_ref","username","password","_getYTApiClusterSetup","proxyBaseUrl","requestUrl","basicAuth","wrap","_callee2$","_context2","prev","next","params","JSON","parse","body","Error","concat","Buffer","from","toString","request","url","method","headers","_objectSpread","ctx","getMetadata","Authorization","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","undefined","reduce","ret","item","push","startsWith","replace","removeSecureFlagIfOriginInsecure","sent","stop","_x5","t0","ytAuthAllowInsecure","config","origin","_reduce","acc","v","k","tmp","_map","includes","handleChangePassword","_x3","_x4","_handleChangePassword","_callee3","_ref3","newPassword","currentPassword","new_password_sha256","current_password_sha256","cfg","_cfg","setup","_yield$getXSRFToken","login","csrf_token","_callee3$","_context3","createHash","update","digest","abrupt","createOption","v4","setUserPassword","parameters","user","result","status","send","err","t1"],"sources":["login.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport axios from 'axios';\nimport _ from 'lodash';\nimport {YT_CYPRESS_COOKIE_NAME} from '../../shared/constants';\nimport {getUserYTApiSetup, getYTApiClusterSetup} from '../components/requestsSetup';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\nimport crypto from 'crypto';\n\n// @ts-ignore\nimport ytLib from '@ytsaurus/javascript-wrapper';\nimport {getXSRFToken} from '../components/cluster-queries';\n\nconst yt = ytLib();\n\nexport async function handleLogin(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.params;\n\n const {username, password} = JSON.parse(req.body) || {};\n if (!username || !password) {\n throw new Error('Username and password must not be empty');\n }\n\n const {proxyBaseUrl} = getYTApiClusterSetup(ytAuthCluster);\n const requestUrl = `${proxyBaseUrl}/login`;\n\n const basicAuth = Buffer.from(`${username}:${password}`).toString('base64');\n\n await axios\n .request({\n url: requestUrl,\n method: req.method as any,\n headers: {...req.ctx.getMetadata(), Authorization: `Basic ${basicAuth}`},\n timeout: 10000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(\n req.ctx,\n res,\n response,\n undefined,\n (headers: Record<string, string[]>) => {\n if (headers['set-cookie']) {\n headers['set-cookie'] = headers['set-cookie'].reduce<string[]>(\n (ret, item) => {\n ret.push(item);\n\n if (item.startsWith(YT_CYPRESS_COOKIE_NAME)) {\n ret.push(\n item.replace(\n YT_CYPRESS_COOKIE_NAME,\n `${ytAuthCluster}:${YT_CYPRESS_COOKIE_NAME}`,\n ),\n );\n }\n\n return ret;\n },\n [],\n );\n }\n\n return removeSecureFlagIfOriginInsecure(req, headers);\n },\n );\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n\nfunction removeSecureFlagIfOriginInsecure(\n req: Request,\n headers: Record<string, string | Array<string>>,\n) {\n const {ytAuthAllowInsecure} = req.ctx.config;\n const {origin} = req.headers;\n\n if (!ytAuthAllowInsecure || 'string' !== typeof origin || !origin.startsWith('http://')) {\n return headers;\n }\n\n return _.reduce(\n headers,\n (acc, v, k) => {\n if (k !== 'set-cookie') {\n acc[k] = v;\n } else {\n const tmp = _.map(v as Array<string>, (item) => {\n if (item.includes(YT_CYPRESS_COOKIE_NAME)) {\n return item.replace(/\\s*Secure;/, '');\n }\n return item;\n });\n acc[k] = tmp;\n }\n return acc;\n },\n {} as typeof headers,\n );\n}\n\nexport async function handleChangePassword(req: Request, res: Response) {\n try {\n const ytAuthCluster = req.params.ytAuthCluster;\n\n if (!ytAuthCluster) {\n throw new Error('You have to define ytAuthCluster.');\n }\n\n const {newPassword, currentPassword} = JSON.parse(req.body) || {};\n if (!newPassword || !currentPassword) {\n throw new Error('New and current password must not be empty');\n }\n\n const new_password_sha256 = crypto.createHash('sha256').update(newPassword).digest('hex');\n const current_password_sha256 = crypto\n .createHash('sha256')\n .update(currentPassword)\n .digest('hex');\n\n let cfg;\n try {\n cfg = getUserYTApiSetup(ytAuthCluster, req);\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 400, e);\n return;\n }\n\n const {setup} = cfg;\n const {login, csrf_token} = await getXSRFToken(req, cfg);\n\n yt.setup.createOption('requestHeaders', 'object', {\n 'X-Csrf-Token': csrf_token,\n });\n\n await yt.v4\n .setUserPassword({\n setup,\n parameters: {user: login, new_password_sha256, current_password_sha256},\n })\n .then((result: unknown) => {\n res.status(200).send({result});\n })\n .catch((err: any) => {\n sendAndLogError(req.ctx, res, 500, err);\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n"],"mappings":"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"}
|
@@ -57,7 +57,7 @@ function _odinProxyApiImpl() {
|
|
57
57
|
case 3:
|
58
58
|
ctx = req.ctx, query = req.query;
|
59
59
|
search = _isEmpty(query) ? '' : "?".concat(qs.stringify(query));
|
60
|
-
_req$params = req.params, action = _req$params.action, cluster = _req$params.
|
60
|
+
_req$params = req.params, action = _req$params.action, cluster = _req$params.ytAuthCluster;
|
61
61
|
allowedActionsUrls = {
|
62
62
|
service_list: "".concat(odinPath, "/service_list"),
|
63
63
|
exists: "".concat(odinPath, "/").concat(action, "/").concat(cluster),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["axios","qs","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","getApp","odinProxyApi","_x","_x2","_odinProxyApi","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","wrap","_callee$","_context","prev","next","odinProxyApiImpl","t0","ctx","method","query","page","headers","referer","stop","_x3","_x4","_odinProxyApiImpl","_callee3","_getApp$config","odinPath","search","_req$params","action","cluster","allowedActionsUrls","url","_callee3$","_context3","config","odinBaseUrl","abrupt","Error","_isEmpty","concat","stringify","params","service_list","exists","availability","_has","request","_objectSpread","getMetadata","data","body","timeout","responseType","then","_ref","_callee2","response","pipedSize","_callee2$","_context2","sent","_x5"],"sources":["odin-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 {getApp} from '../ServerFactory';\n\nexport async function odinProxyApi(req: Request, res: Response) {\n try {\n await odinProxyApiImpl(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\nasync function odinProxyApiImpl(req: Request, res: Response) {\n const odinPath = getApp().config?.odinBaseUrl;\n if (!odinPath) {\n return sendAndLogError(req.ctx, res, 500, new Error('Odin base url is not configured'));\n }\n const {ctx, query} = req;\n\n const search = _.isEmpty(query) ? '' : `?${qs.stringify(query)}`;\n const {action, cluster} = req.params;\n\n const allowedActionsUrls: Record<string, string> = {\n service_list: `${odinPath}/service_list`,\n exists: `${odinPath}/${action}/${cluster}`,\n availability: `${odinPath}/${action}/${cluster}${search}`,\n };\n\n if (!_.has(allowedActionsUrls, action)) {\n return sendAndLogError(\n req.ctx,\n res,\n 400,\n new Error(`Odin action - ${action}, is not supported`),\n );\n }\n\n const url = allowedActionsUrls[action];\n\n return axios\n .request({\n url: url,\n method: req.method as any,\n headers: {...ctx.getMetadata(), '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,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,IAAI;AAGnB,SAAQC,8BAA8B,EAAEC,iBAAiB,EAAEC,eAAe,QAAO,UAAU;AAC3F,SAAQC,MAAM,QAAO,kBAAkB;AAEvC,gBAAsBC,YAAYA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,aAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAUjC,SAAAF,cAAA;EAAAA,aAAA,GAAAG,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAVM,SAAAC,QAA4BC,GAAY,EAAEC,GAAa;IAAA,OAAAJ,mBAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAE,IAAA;UAAA,OAEhDC,gBAAgB,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,OAE1BlB,eAAe,CAACY,GAAG,CAACS,GAAG,EAAER,GAAG,EAAE,GAAG,EAAAG,QAAA,CAAAI,EAAA,EAAK;YACxCE,MAAM,EAAE,QAAQ;YAChBC,KAAK,EAAEX,GAAG,CAACW,KAAK;YAChBC,IAAI,EAAEZ,GAAG,CAACa,OAAO,CAACC;UACtB,CAAC,CAAC;QAAA;QAAA;UAAA,OAAAV,QAAA,CAAAW,IAAA;MAAA;IAAA,GAAAhB,OAAA;EAAA,CAET;EAAA,OAAAN,aAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEcY,gBAAgBA,CAAAS,GAAA,EAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAAxB,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAuB,kBAAA;EAAAA,iBAAA,GAAAtB,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAA/B,SAAAqB,SAAgCnB,GAAY,EAAEC,GAAa;IAAA,IAAAmB,cAAA;IAAA,IAAAC,QAAA,EAAAZ,GAAA,EAAAE,KAAA,EAAAW,MAAA,EAAAC,WAAA,EAAAC,MAAA,EAAAC,OAAA,EAAAC,kBAAA,EAAAC,GAAA;IAAA,OAAA9B,mBAAA,CAAAK,IAAA,UAAA0B,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAxB,IAAA,GAAAwB,SAAA,CAAAvB,IAAA;QAAA;UACjDe,QAAQ,IAAAD,cAAA,GAAG/B,MAAM,CAAC,CAAC,CAACyC,MAAM,cAAAV,cAAA,uBAAfA,cAAA,CAAiBW,WAAW;UAAA,IACxCV,QAAQ;YAAAQ,SAAA,CAAAvB,IAAA;YAAA;UAAA;UAAA,OAAAuB,SAAA,CAAAG,MAAA,WACF5C,eAAe,CAACY,GAAG,CAACS,GAAG,EAAER,GAAG,EAAE,GAAG,EAAE,IAAIgC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAAA;UAEpFxB,GAAG,GAAWT,GAAG,CAAjBS,GAAG,EAAEE,KAAK,GAAIX,GAAG,CAAZW,KAAK;UAEXW,MAAM,GAAGY,QAAA,CAAUvB,KAAK,CAAC,GAAG,EAAE,OAAAwB,MAAA,CAAOlD,EAAE,CAACmD,SAAS,CAACzB,KAAK,CAAC,CAAE;UAAAY,WAAA,
|
1
|
+
{"version":3,"names":["axios","qs","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","getApp","odinProxyApi","_x","_x2","_odinProxyApi","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","wrap","_callee$","_context","prev","next","odinProxyApiImpl","t0","ctx","method","query","page","headers","referer","stop","_x3","_x4","_odinProxyApiImpl","_callee3","_getApp$config","odinPath","search","_req$params","action","cluster","allowedActionsUrls","url","_callee3$","_context3","config","odinBaseUrl","abrupt","Error","_isEmpty","concat","stringify","params","ytAuthCluster","service_list","exists","availability","_has","request","_objectSpread","getMetadata","data","body","timeout","responseType","then","_ref","_callee2","response","pipedSize","_callee2$","_context2","sent","_x5"],"sources":["odin-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 {getApp} from '../ServerFactory';\n\nexport async function odinProxyApi(req: Request, res: Response) {\n try {\n await odinProxyApiImpl(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\nasync function odinProxyApiImpl(req: Request, res: Response) {\n const odinPath = getApp().config?.odinBaseUrl;\n if (!odinPath) {\n return sendAndLogError(req.ctx, res, 500, new Error('Odin base url is not configured'));\n }\n const {ctx, query} = req;\n\n const search = _.isEmpty(query) ? '' : `?${qs.stringify(query)}`;\n const {action, ytAuthCluster: cluster} = req.params;\n\n const allowedActionsUrls: Record<string, string> = {\n service_list: `${odinPath}/service_list`,\n exists: `${odinPath}/${action}/${cluster}`,\n availability: `${odinPath}/${action}/${cluster}${search}`,\n };\n\n if (!_.has(allowedActionsUrls, action)) {\n return sendAndLogError(\n req.ctx,\n res,\n 400,\n new Error(`Odin action - ${action}, is not supported`),\n );\n }\n\n const url = allowedActionsUrls[action];\n\n return axios\n .request({\n url: url,\n method: req.method as any,\n headers: {...ctx.getMetadata(), '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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"}
|
@@ -12,16 +12,16 @@ export function getClusterPools(_x, _x2) {
|
|
12
12
|
}
|
13
13
|
function _getClusterPools() {
|
14
14
|
_getClusterPools = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(req, res) {
|
15
|
-
var _ref,
|
15
|
+
var _ref, ytAuthCluster, poolTree, cfg, _cfg, setup, _yield$loadPoolTree, names, tree;
|
16
16
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
17
17
|
while (1) switch (_context.prev = _context.next) {
|
18
18
|
case 0:
|
19
19
|
_context.prev = 0;
|
20
20
|
req.ctx.log('Test', req.params);
|
21
|
-
_ref = req.params,
|
21
|
+
_ref = req.params, ytAuthCluster = _ref.ytAuthCluster;
|
22
22
|
poolTree = req.query.poolTree;
|
23
23
|
_context.prev = 4;
|
24
|
-
cfg = getUserYTApiSetup(
|
24
|
+
cfg = getUserYTApiSetup(ytAuthCluster, req);
|
25
25
|
_context.next = 12;
|
26
26
|
break;
|
27
27
|
case 8:
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["ytLib","USE_MAX_SIZE","sendAndLogError","getUserYTApiSetup","yt","getClusterPools","_x","_x2","_getClusterPools","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","_ref","
|
1
|
+
{"version":3,"names":["ytLib","USE_MAX_SIZE","sendAndLogError","getUserYTApiSetup","yt","getClusterPools","_x","_x2","_getClusterPools","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","_ref","ytAuthCluster","poolTree","cfg","_cfg","setup","_yield$loadPoolTree","names","tree","wrap","_callee$","_context","prev","next","ctx","log","params","query","t0","abrupt","loadPoolTree","sent","send","t1","stop","SCHEDULER_POOL_TREES","_x3","_x4","_loadPoolTree","_callee2","poolTreesRoot","data","stack","_loop","_callee2$","_context3","getPoolTreeRootPath","loadDefaultPoolTree","v3","get","parameters","_objectSpread","path","concat","item","_loop$","_context2","pop","Object","keys","forEach","k","push","length","delegateYield","then","err","code","codes","NODE_DOES_NOT_EXIST","Promise","reject","_x5","_x6","_loadDefaultPoolTree","_callee3","_callee3$","_context4","defaultTree","error"],"sources":["scheduling-pools.ts"],"sourcesContent":["import _ from 'lodash';\n\nimport type {Request, Response} from 'express';\n// @ts-ignore\nimport ytLib from '@ytsaurus/javascript-wrapper';\n\nimport {USE_MAX_SIZE} from '../../shared/constants/yt-api';\n\nimport {sendAndLogError} from '../utils';\nimport {getUserYTApiSetup} from '../components/requestsSetup';\nimport {YTError} from '../../@types/types';\n\nconst yt = ytLib();\n\nexport async function getClusterPools(req: Request, res: Response) {\n try {\n req.ctx.log('Test', req.params);\n const {ytAuthCluster} = req.params as {ytAuthCluster: string};\n const {poolTree} = req.query;\n let cfg;\n try {\n cfg = getUserYTApiSetup(ytAuthCluster, req);\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 400, e);\n return;\n }\n const {setup} = cfg;\n\n const {names, tree} = await loadPoolTree(setup, poolTree as string);\n res.send({tree, names});\n } catch (e: any) {\n sendAndLogError(req.ctx, res, null, e);\n }\n}\n\nconst SCHEDULER_POOL_TREES = '//sys/scheduler/config/pool_trees_root';\n\ninterface PoolTree extends Record<string, PoolTree> {}\n\nasync function loadPoolTree(\n setup: unknown,\n poolTree?: string,\n): Promise<{names: Array<string>; tree: string}> {\n const poolTreesRoot = await getPoolTreeRootPath(setup);\n\n const tree = poolTree ? poolTree : await loadDefaultPoolTree(setup, poolTreesRoot);\n const data: PoolTree = await yt.v3.get({\n setup,\n parameters: {path: `${poolTreesRoot}/${tree}`, ...USE_MAX_SIZE},\n });\n\n const names: Array<string> = [];\n const stack = [data];\n while (stack.length) {\n const item = stack.pop();\n Object.keys(item ?? {}).forEach((k) => {\n names.push(k);\n if (item) {\n stack.push(item[k]);\n }\n });\n }\n\n return {names, tree};\n}\n\nfunction getPoolTreeRootPath(setup: unknown): Promise<string> {\n return yt.v3.get({setup, parameters: {path: SCHEDULER_POOL_TREES}}).then(\n (path: string) => {\n return path;\n },\n (err: YTError) => {\n return err.code === yt.codes.NODE_DOES_NOT_EXIST\n ? '//sys/pool_trees'\n : Promise.reject(err);\n },\n );\n}\n\nasync function loadDefaultPoolTree(setup: unknown, poolTreesRoot: string) {\n const path = `${poolTreesRoot}/@default_tree`;\n return yt.v3\n .get({setup, parameters: {path}})\n .then((defaultTree: string) => {\n return defaultTree || 'physical';\n })\n .catch((error: any) => {\n if (error && error.code === yt.codes.NODE_DOES_NOT_EXIST) {\n return 'physical';\n }\n throw error;\n });\n}\n"],"mappings":"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"}
|
@@ -7,18 +7,24 @@ function sendResponse(_req, res, data) {
|
|
7
7
|
}
|
8
8
|
export function settingsCreate(req, res) {
|
9
9
|
var ctx = req.ctx,
|
10
|
-
|
10
|
+
_req$params = req.params,
|
11
|
+
username = _req$params.username,
|
12
|
+
ytAuthCluster = _req$params.ytAuthCluster;
|
11
13
|
return create({
|
12
14
|
ctx: ctx,
|
13
|
-
username: username
|
15
|
+
username: username,
|
16
|
+
cluster: ytAuthCluster
|
14
17
|
}).then(sendResponse.bind(null, req, res))["catch"](sendError.bind(null, res));
|
15
18
|
}
|
16
19
|
export function settingsGet(req, res) {
|
17
20
|
var ctx = req.ctx,
|
18
|
-
|
21
|
+
_req$params2 = req.params,
|
22
|
+
username = _req$params2.username,
|
23
|
+
ytAuthCluster = _req$params2.ytAuthCluster;
|
19
24
|
return get({
|
20
25
|
ctx: ctx,
|
21
|
-
username: username
|
26
|
+
username: username,
|
27
|
+
cluster: ytAuthCluster
|
22
28
|
}).then(sendResponse.bind(null, req, res))["catch"](sendError.bind(null, res));
|
23
29
|
}
|
24
30
|
export function settingsGetItem(_x, _x2) {
|
@@ -26,15 +32,16 @@ export function settingsGetItem(_x, _x2) {
|
|
26
32
|
}
|
27
33
|
function _settingsGetItem() {
|
28
34
|
_settingsGetItem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(req, res) {
|
29
|
-
var ctx, _req$
|
35
|
+
var ctx, _req$params5, username, path, ytAuthCluster;
|
30
36
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
31
37
|
while (1) switch (_context.prev = _context.next) {
|
32
38
|
case 0:
|
33
|
-
ctx = req.ctx, _req$
|
39
|
+
ctx = req.ctx, _req$params5 = req.params, username = _req$params5.username, path = _req$params5.path, ytAuthCluster = _req$params5.ytAuthCluster;
|
34
40
|
return _context.abrupt("return", getItem({
|
35
41
|
ctx: ctx,
|
36
42
|
username: username,
|
37
|
-
path: path
|
43
|
+
path: path,
|
44
|
+
cluster: ytAuthCluster
|
38
45
|
}).then(sendResponse.bind(null, req, res))["catch"](sendError.bind(null, res)));
|
39
46
|
case 2:
|
40
47
|
case "end":
|
@@ -46,9 +53,10 @@ function _settingsGetItem() {
|
|
46
53
|
}
|
47
54
|
export function settingsSetItem(req, res) {
|
48
55
|
var ctx = req.ctx,
|
49
|
-
_req$
|
50
|
-
username = _req$
|
51
|
-
path = _req$
|
56
|
+
_req$params3 = req.params,
|
57
|
+
username = _req$params3.username,
|
58
|
+
path = _req$params3.path,
|
59
|
+
ytAuthCluster = _req$params3.ytAuthCluster,
|
52
60
|
_req$body = req.body,
|
53
61
|
_req$body2 = _req$body === void 0 ? {} : _req$body,
|
54
62
|
value = _req$body2.value;
|
@@ -56,18 +64,21 @@ export function settingsSetItem(req, res) {
|
|
56
64
|
ctx: ctx,
|
57
65
|
username: username,
|
58
66
|
path: path,
|
59
|
-
value: value
|
67
|
+
value: value,
|
68
|
+
cluster: ytAuthCluster
|
60
69
|
}).then(sendResponse.bind(null, req, res))["catch"](sendError.bind(null, res));
|
61
70
|
}
|
62
71
|
export function settingsDeleteItem(req, res) {
|
63
72
|
var ctx = req.ctx,
|
64
|
-
_req$
|
65
|
-
username = _req$
|
66
|
-
path = _req$
|
73
|
+
_req$params4 = req.params,
|
74
|
+
username = _req$params4.username,
|
75
|
+
path = _req$params4.path,
|
76
|
+
ytAuthCluster = _req$params4.ytAuthCluster;
|
67
77
|
return deleteItem({
|
68
78
|
ctx: ctx,
|
69
79
|
username: username,
|
70
|
-
path: path
|
80
|
+
path: path,
|
81
|
+
cluster: ytAuthCluster
|
71
82
|
}).then(sendResponse.bind(null, req, res))["catch"](sendError.bind(null, res));
|
72
83
|
}
|
73
84
|
// #sourceMappingURL=settings.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["create","deleteItem","get","getItem","setItem","sendError","sendResponse","_req","res","data","set","status","send","JSON","stringify","settingsCreate","req","ctx","
|
1
|
+
{"version":3,"names":["create","deleteItem","get","getItem","setItem","sendError","sendResponse","_req","res","data","set","status","send","JSON","stringify","settingsCreate","req","ctx","_req$params","params","username","ytAuthCluster","cluster","then","bind","settingsGet","_req$params2","settingsGetItem","_x","_x2","_settingsGetItem","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_req$params5","path","wrap","_callee$","_context","prev","next","abrupt","stop","settingsSetItem","_req$params3","_req$body","body","_req$body2","value","settingsDeleteItem","_req$params4"],"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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"}
|
@@ -7,15 +7,15 @@ export function tableColumnPresetGet(_x, _x2) {
|
|
7
7
|
}
|
8
8
|
function _tableColumnPresetGet() {
|
9
9
|
_tableColumnPresetGet = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(req, res) {
|
10
|
-
var hash, presetsConfig, columns, err;
|
10
|
+
var _req$params, hash, ytAuthCluster, presetsConfig, columns, err;
|
11
11
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
12
12
|
while (1) switch (_context.prev = _context.next) {
|
13
13
|
case 0:
|
14
|
-
|
14
|
+
_req$params = req.params, hash = _req$params.hash, ytAuthCluster = _req$params.ytAuthCluster;
|
15
15
|
_context.prev = 1;
|
16
16
|
presetsConfig = checkEnabled(req);
|
17
17
|
_context.next = 5;
|
18
|
-
return getColumnPreset(presetsConfig, hash);
|
18
|
+
return getColumnPreset(presetsConfig, hash, ytAuthCluster);
|
19
19
|
case 5:
|
20
20
|
columns = _context.sent;
|
21
21
|
if (!columns) {
|
@@ -47,30 +47,31 @@ export function tableColumnPresetSave(_x3, _x4) {
|
|
47
47
|
}
|
48
48
|
function _tableColumnPresetSave() {
|
49
49
|
_tableColumnPresetSave = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(req, res) {
|
50
|
-
var body, presetsConfig, result;
|
50
|
+
var body, ytAuthCluster, presetsConfig, result;
|
51
51
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
52
52
|
while (1) switch (_context2.prev = _context2.next) {
|
53
53
|
case 0:
|
54
54
|
body = req.body;
|
55
|
-
|
55
|
+
ytAuthCluster = req.params.ytAuthCluster;
|
56
|
+
_context2.prev = 2;
|
56
57
|
presetsConfig = checkEnabled(req);
|
57
|
-
_context2.next =
|
58
|
-
return saveColumnPreset(presetsConfig, body);
|
59
|
-
case
|
58
|
+
_context2.next = 6;
|
59
|
+
return saveColumnPreset(presetsConfig, body, ytAuthCluster);
|
60
|
+
case 6:
|
60
61
|
result = _context2.sent;
|
61
62
|
res.status(200).send(result);
|
62
|
-
_context2.next =
|
63
|
+
_context2.next = 14;
|
63
64
|
break;
|
64
|
-
case
|
65
|
-
_context2.prev =
|
66
|
-
_context2.t0 = _context2["catch"](
|
65
|
+
case 10:
|
66
|
+
_context2.prev = 10;
|
67
|
+
_context2.t0 = _context2["catch"](2);
|
67
68
|
req.ctx.logError('Failed to save preset of columns', _context2.t0);
|
68
69
|
res.status(500).send(prepareErrorToSend(_context2.t0));
|
69
|
-
case
|
70
|
+
case 14:
|
70
71
|
case "end":
|
71
72
|
return _context2.stop();
|
72
73
|
}
|
73
|
-
}, _callee2, null, [[
|
74
|
+
}, _callee2, null, [[2, 10]]);
|
74
75
|
}));
|
75
76
|
return _tableColumnPresetSave.apply(this, arguments);
|
76
77
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["getColumnPreset","saveColumnPreset","prepareErrorToSend","tableColumnPresetGet","_x","_x2","_tableColumnPresetGet","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","hash","presetsConfig","columns","err","wrap","_callee$","_context","prev","next","params","checkEnabled","sent","Error","concat","ctx","logError","status","send","t0","stop","tableColumnPresetSave","_x3","_x4","_tableColumnPresetSave","_callee2","body","result","_callee2$","_context2","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":";;AACA,SAAQA,eAAe,EAAEC,gBAAgB,QAAO,qBAAqB;AACrE,SAAQC,kBAAkB,QAAO,UAAU;AAE3C,gBAAsBC,oBAAoBA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,qBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAkBzC,SAAAF,sBAAA;EAAAA,qBAAA,GAAAG,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAlBM,SAAAC,QAAoCC,GAAY,EAAEC,GAAa;IAAA,IAAAC,IAAA,EAAAC,aAAA,EAAAC,OAAA,EAAAC,GAAA;IAAA,
|
1
|
+
{"version":3,"names":["getColumnPreset","saveColumnPreset","prepareErrorToSend","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","sent","Error","concat","ctx","logError","status","send","t0","stop","tableColumnPresetSave","_x3","_x4","_tableColumnPresetSave","_callee2","body","result","_callee2$","_context2","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":"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"}
|
@@ -71,7 +71,7 @@ function _ytTvmApiHandler() {
|
|
71
71
|
_ref = req, ctx = _ref.ctx, params = _ref.params;
|
72
72
|
referer = req.headers.referer;
|
73
73
|
_context3.prev = 5;
|
74
|
-
cfg = getUserYTApiSetup(params.
|
74
|
+
cfg = getUserYTApiSetup(params.ytAuthCluster, req);
|
75
75
|
_context3.next = 12;
|
76
76
|
break;
|
77
77
|
case 9:
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["axios","qs","ytLib","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","os","getYtPageIdParts","YT_API_REQUEST_ID_HEADER","getUserYTApiSetup","yt","YT_API_REQUEST_ID_HEADER_LOWER","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","call","_objectSpread","isNaN","hostname","service","id","requestTime","requestId","page","getPage","_sendError3","_callee2","e","statusCode","_args2","_callee2$","_context2","length","undefined","method","query","stop","_sendError2","_x3","headers","cluster","t0","abrupt","version","Error","concat","get","command","has","heavy","log","request","url","getMetadata","sent","data","_isEmpty","stringify","_objectWithoutProperties","map","_toPropertyKey","body","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","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","qs","ytLib","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","os","getYtPageIdParts","YT_API_REQUEST_ID_HEADER","getUserYTApiSetup","yt","YT_API_REQUEST_ID_HEADER_LOWER","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","call","_objectSpread","isNaN","hostname","service","id","requestTime","requestId","page","getPage","_sendError3","_callee2","e","statusCode","_args2","_callee2$","_context2","length","undefined","method","query","stop","_sendError2","_x3","headers","ytAuthCluster","t0","abrupt","version","Error","concat","get","command","has","heavy","log","request","url","getMetadata","sent","data","_isEmpty","stringify","_objectWithoutProperties","map","_toPropertyKey","body","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","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":";;;;;;AAAA,OAAOA,KAAK,MAAoB,OAAO;AAEvC,OAAOC,EAAE,MAAM,IAAI;AAEnB;AACA,OAAOC,KAAK,MAAM,8BAA8B;AAChD,SAAQC,8BAA8B,EAAEC,iBAAiB,EAAEC,eAAe,QAAO,UAAU;AAC3F,OAAO,KAAKC,EAAE,MAAM,IAAI;AACxB,SAAQC,gBAAgB,QAAO,oBAAoB;AACnD,SAAQC,wBAAwB,QAAO,wBAAwB;AAC/D,SAAQC,iBAAiB,QAAO,6BAA6B;AAE7D,IAAMC,EAAE,GAAGR,KAAK,CAAC,CAAC;AAYlB,IAAMS,8BAA8B,GAAGH,wBAAwB,CAACI,WAAW,CAAC,CAAC;AAE7E,IAAMC,iBAAiB,GAAG,IAAIC,GAAG,CAAC,CAAC,gBAAgB,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;AAE9F,IAAMC,iBAA6D,GAAGL,EAAE,CAACM,oBAAoB,CAAC,CAAC;AAE/F,gBAAsBC,eAAeA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,gBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AA6GpC,SAAAF,iBAAA;EAAAA,gBAAA,GAAAG,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CA7GM,SAAAC,SAA+BC,GAAY,EAAEC,GAAa;IAAA,IAAAC,IAAA,EAAAC,GAAA,EAAAC,MAAA,EAAAC,OAAA,EAI9CC,SAAS,EAAAC,UAAA,EAAAC,GAAA,EAAAC,IAAA,EAAAC,KAAA,EAAAC,WAAA,EAAAC,cAAA,EAAAC,UAAA,EAAAC,WAAA,EAAAC,MAAA,EAAAC,SAAA,EAAAC,OAAA,EA+BfC,SAAS,EAAAC,KAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,YAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,UAAA,EAAAC,YAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,IAAA,EAAAC,SAAA;IAAA,OAAAlC,mBAAA,CAAAmC,IAAA,UAAAC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAE,IAAA;QAAA;UAATlB,SAAS,YAAAmB,WAACC,SAIlB,EAAE;YAAA,IAAAC,UAAA;YACC,IAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;YAC5B,IAAOC,mBAAmB,GAAIL,SAAS,CAAhCK,mBAAmB;YAC1B,IAAMC,aAAa,GAAGC,MAAM,CAACF,mBAAmB,CAAC;YACjD,CAAAJ,UAAA,GAAApC,GAAG,CAAC2C,KAAK,cAAAP,UAAA,eAATA,UAAA,CAAAQ,IAAA,CAAA5C,GAAG,EAAS,YAAY,EAAA6C,aAAA,CAAAA,aAAA,KACjBV,SAAS;cACZK,mBAAmB,EAAEM,KAAK,CAACL,aAAa,CAAC,GAAG,CAAC,GAAGA,aAAa;cAC7DJ,SAAS,EAATA,SAAS;cACTb,IAAI,EAAEhD,EAAE,CAACuE,QAAQ,CAAC,CAAC;cACnBC,OAAO,EAAEzC,KAAK,CAAC0C,EAAE;cACjBC,WAAW,EAAEb,SAAS,GAAGxB,SAAS;cAClCsC,SAAS,EAAEtD,GAAG,CAACoD,EAAE;cACjBrC,MAAM,EAAGE,OAAO,IAAeF,MAAM;cACrCV,OAAO,EAAEA,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,EAAE;cACtBkD,IAAI,EAAE,CAAClD,OAAO,GAAG,EAAE,GAAGzB,gBAAgB,CAACyB,OAAO,CAAC,CAACmD,OAAO,CAAC;YAAC,EAC5D,CAAC;UACN,CAAC;UAAAjD,UAAA,YAAAkD,YAAA;YAAAlD,UAAA,GAAAX,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAnDD,SAAA4D,SAAyBC,CAAqB;cAAA,IAAAC,UAAA;gBAAAC,MAAA,GAAAlE,SAAA;cAAA,OAAAE,mBAAA,CAAAmC,IAAA,UAAA8B,UAAAC,SAAA;gBAAA,kBAAAA,SAAA,CAAA5B,IAAA,GAAA4B,SAAA,CAAA3B,IAAA;kBAAA;oBAAEwB,UAAyB,GAAAC,MAAA,CAAAG,MAAA,QAAAH,MAAA,QAAAI,SAAA,GAAAJ,MAAA,MAAG,IAAI;oBAAAE,SAAA,CAAA3B,IAAA;oBAAA,OACtE1D,eAAe,CAACyB,GAAG,EAAEF,GAAG,EAAE2D,UAAU,EAAED,CAAC,EAAE;sBAC3CO,MAAM,EAAE,QAAQ;sBAChBC,KAAK,EAAEnE,GAAG,CAACmE,KAAK;sBAChBZ,IAAI,EAAElD;oBACV,CAAC,CAAC;kBAAA;kBAAA;oBAAA,OAAA0D,SAAA,CAAAK,IAAA;gBAAA;cAAA,GAAAV,QAAA;YAAA,CACL;YAAA,OAAAnD,UAAA,CAAAb,KAAA,OAAAC,SAAA;UAAA;UANcW,SAAS,YAAA+D,YAAAC,GAAA;YAAA,OAAA/D,UAAA,CAAAb,KAAA,OAAAC,SAAA;UAAA;UAAAO,IAAA,GAHFF,GAAG,EAAlBG,GAAG,GAAAD,IAAA,CAAHC,GAAG,EAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;UACXC,OAAO,GAAIL,GAAG,CAACuE,OAAO,CAAtBlE,OAAO;UAAA6B,SAAA,CAAAC,IAAA;UAYV3B,GAAG,GAAG1B,iBAAiB,CAACsB,MAAM,CAACoE,aAAa,EAAExE,GAAG,CAAC;UAACkC,SAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,SAAA,CAAAC,IAAA;UAAAD,SAAA,CAAAuC,EAAA,GAAAvC,SAAA;UAAA,OAAAA,SAAA,CAAAwC,MAAA,WAE5CpE,SAAS,CAAA4B,SAAA,CAAAuC,EAAA,EAAI,GAAG,CAAC;QAAA;UAAAhE,IAAA,GAEiBD,GAAG,EAAzCE,KAAK,GAAAD,IAAA,CAALC,KAAK,EAAEC,WAAW,GAAAF,IAAA,CAAXE,WAAW,EAAEC,cAAc,GAAAH,IAAA,CAAdG,cAAc;UAEhBC,UAAU,GAAIzB,iBAAiB,CAAhDgB,MAAM,CAACuE,OAAO;UAAA,IACjB9D,UAAU;YAAAqB,SAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,SAAA,CAAAwC,MAAA,WACJpE,SAAS,CAAC,IAAIsE,KAAK,6BAAAC,MAAA,CAA6BzE,MAAM,CAACuE,OAAO,MAAG,CAAC,EAAE,GAAG,CAAC;QAAA;UAG7E7D,WAAW,GAAGD,UAAU,CAACiE,GAAG,CAAC1E,MAAM,CAAC2E,OAAO,CAAC;UAAA,MAC9C,CAACjE,WAAW,IAAI,CAAC5B,iBAAiB,CAAC8F,GAAG,CAAC5E,MAAM,CAAC2E,OAAO,CAAC;YAAA7C,SAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,SAAA,CAAAwC,MAAA,WAC/CpE,SAAS,CAAC,IAAIsE,KAAK,yBAAAC,MAAA,CAAyBzE,MAAM,CAAC2E,OAAO,MAAG,CAAC,EAAE,GAAG,CAAC;QAAA;UAGzEhE,MAAM,MAAA8D,MAAA,CAAMzE,MAAM,CAACuE,OAAO,OAAAE,MAAA,CAAIzE,MAAM,CAAC2E,OAAO;UAC5C/D,SAAS,GAAGyB,IAAI,CAACC,GAAG,CAAC,CAAC;UAEazB,OAAO,GAAIjB,GAAG,CAACuE,OAAO,CAAvDvF,8BAA8B;UAAAkD,SAAA,CAAAC,IAAA;UAyB3BhB,KAAK,GAAYT,KAAK,CAAtBS,KAAK,EAAEC,MAAM,GAAIV,KAAK,CAAfU,MAAM;UACdC,KAAK,GAAGD,MAAM,GAAG,OAAO,GAAG,MAAM;UACnCE,YAAY,GAAGH,KAAK;UAAA,MACpBL,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEmE,KAAK,IAAI,CAACrE,cAAc;YAAAsB,SAAA,CAAAE,IAAA;YAAA;UAAA;UACrCjC,GAAG,CAAC+E,GAAG,qCAAAL,MAAA,CAAqCzE,MAAM,CAAC2E,OAAO,MAAG,CAAC;UAAC7C,SAAA,CAAAE,IAAA;UAAA,OAC7C/D,KAAK,CAAC8G,OAAO,CAAC;YAC5BjB,MAAM,EAAE,KAAK;YACbkB,GAAG,KAAAP,MAAA,CAAKxD,KAAK,SAAAwD,MAAA,CAAM1D,KAAK,WAAQ;YAChCoD,OAAO,EAAEpE,GAAG,CAACkF,WAAW,CAAC;UAC7B,CAAC,CAAC;QAAA;UAJIpF,IAAG,GAAAiC,SAAA,CAAAoD,IAAA;UAKThE,YAAY,GAAGrB,IAAG,CAACsF,IAAI,CAAC,CAAC,CAAC;QAAC;UAGzB/D,MAAM,GAAGgE,QAAA,CAAUxF,GAAG,CAACmE,KAAK,CAAC,GAAG,EAAE,OAAAU,MAAA,CAAOvG,EAAE,CAACmH,SAAS,CAACzF,GAAG,CAACmE,KAAK,CAAC,CAAE;UAClE1C,UAAU,MAAAoD,MAAA,CAAMxD,KAAK,SAAAwD,MAAA,CAAMvD,YAAY,WAAAuD,MAAA,CAAQ9D,MAAM,EAAA8D,MAAA,CAAGrD,MAAM,GAEpE;UAAAE,YAAA,GAC0E1B,GAAG,CAACuE,OAAO,EAA9E5C,IAAI,GAAAD,YAAA,CAAJC,IAAI,EAAEC,MAAM,GAAAF,YAAA,CAANE,MAAM,EAAoCC,MAAM,GAAAH,YAAA,CAAvC1C,8BAA8B,GAAc8C,IAAI,GAAA4D,wBAAA,CAAAhE,YAAA,qBAAhD1C,8BAA8B,EAAA2G,GAAA,CAAAC,cAAA;UACpDzF,GAAG,CAAC+E,GAAG,CAAC,SAAS,EAAE;YAACzD,UAAU,EAAVA,UAAU;YAAE,qBAAqB,EAAEzB,GAAG,CAACoD;UAAE,CAAC,CAAC;UAAClB,SAAA,CAAAE,IAAA;UAAA,OAE1D/D,KAAK,CACN8G,OAAO,CAAC;YACLC,GAAG,EAAE3D,UAAU;YACfyC,MAAM,EAAElE,GAAG,CAACkE,MAAa;YACzBK,OAAO,EAAAvB,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACA7C,GAAG,CAACkF,WAAW,CAAC,CAAC,GACjBvD,IAAI;cACP,iBAAiB,EAAE,MAAM;cACzB,qBAAqB,EAAE9B,GAAG,CAACoD,EAAE;cAC7B,wBAAwB,EAAE;YAAG,GAC1BzC,WAAW,CACjB;YACD4E,IAAI,EAAEvF,GAAG,CAAC6F,IAAI;YACdC,OAAO,EAAE,MAAM;YACfC,YAAY,EAAE;UAClB,CAAC,CAAC,CACDC,IAAI;YAAA,IAAAC,KAAA,GAAArG,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAAC,SAAAoG,QAAOC,QAAQ;cAAA,IAAAC,SAAA;cAAA,OAAAvG,mBAAA,CAAAmC,IAAA,UAAAqE,SAAAC,QAAA;gBAAA,kBAAAA,QAAA,CAAAnE,IAAA,GAAAmE,QAAA,CAAAlE,IAAA;kBAAA;oBAAAkE,QAAA,CAAAlE,IAAA;oBAAA,OACO3D,iBAAiB,CAAC0B,GAAG,EAAEF,GAAG,EAAEkG,QAAQ,CAAC;kBAAA;oBAAvDC,SAAS,GAAAE,QAAA,CAAAhB,IAAA;oBAAA,IACVc,SAAS;sBAAAE,QAAA,CAAAlE,IAAA;sBAAA;oBAAA;oBAAA,MACJ,IAAIwC,KAAK,CAACpG,8BAA8B,CAAC;kBAAA;oBAEnD0C,SAAS,CAAA8B,aAAA,CAAAA,aAAA,KAAKoD,SAAS;sBAAEG,cAAc,EAAEJ,QAAQ,CAACK;oBAAM,EAAC,CAAC;kBAAC;kBAAA;oBAAA,OAAAF,QAAA,CAAAlC,IAAA;gBAAA;cAAA,GAAA8B,OAAA;YAAA,CAC9D;YAAA,iBAAAO,GAAA;cAAA,OAAAR,KAAA,CAAAvG,KAAA,OAAAC,SAAA;YAAA;UAAA,IAAC;QAAA;UAAAuC,SAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,SAAA,CAAAC,IAAA;UAAAD,SAAA,CAAAwE,EAAA,GAAAxE,SAAA;UAAAA,SAAA,CAAAC,IAAA;UAAAD,SAAA,CAAAE,IAAA;UAAA,OAGI9B,SAAS,CAAA4B,SAAA,CAAAwE,EAAA,EAAW,GAAG,CAAC;QAAA;UAAAxE,SAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,SAAA,CAAAC,IAAA;UAAAD,SAAA,CAAAyE,EAAA,GAAAzE,SAAA;QAAA;UAElChB,SAAS,CAAC;YACNqF,cAAc,EAAE,CAAArE,SAAA,CAAAwE,EAAA,aAAAxE,SAAA,CAAAwE,EAAA,gBAAA3E,SAAA,GAAAG,SAAA,CAAAwE,EAAA,CAAmBP,QAAQ,cAAApE,SAAA,uBAA3BA,SAAA,CAA6ByE,MAAM,KAAI;UAC3D,CAAC,CAAC;QAAC;QAAA;UAAA,OAAAtE,SAAA,CAAAkC,IAAA;MAAA;IAAA,GAAArE,QAAA;EAAA,CAEV;EAAA,OAAAN,gBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
|
@@ -45,12 +45,12 @@ function ytProxyApiImpl(_x3, _x4) {
|
|
45
45
|
}
|
46
46
|
function _ytProxyApiImpl() {
|
47
47
|
_ytProxyApiImpl = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(req, res) {
|
48
|
-
var ctx, query, _req$params, command,
|
48
|
+
var ctx, query, _req$params, command, ytAuthCluster, proxyAction, search, cfg, _cfg, authHeaders, proxyBaseUrl;
|
49
49
|
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
50
50
|
while (1) switch (_context3.prev = _context3.next) {
|
51
51
|
case 0:
|
52
52
|
ctx = req.ctx, query = req.query;
|
53
|
-
_req$params = req.params, command = _req$params.command,
|
53
|
+
_req$params = req.params, command = _req$params.command, ytAuthCluster = _req$params.ytAuthCluster;
|
54
54
|
proxyAction = ALLOWED_ACTION[command];
|
55
55
|
if (proxyAction) {
|
56
56
|
_context3.next = 5;
|
@@ -60,7 +60,7 @@ function _ytProxyApiImpl() {
|
|
60
60
|
case 5:
|
61
61
|
search = _isEmpty(query) ? '' : "?".concat(qs.stringify(query));
|
62
62
|
_context3.prev = 6;
|
63
|
-
cfg = getUserYTApiSetup(
|
63
|
+
cfg = getUserYTApiSetup(ytAuthCluster, req);
|
64
64
|
_context3.next = 13;
|
65
65
|
break;
|
66
66
|
case 10:
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["axios","qs","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","getUserYTApiSetup","ytProxyApi","_x","_x2","_ytProxyApi","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","wrap","_callee$","_context","prev","next","ytProxyApiImpl","t0","ctx","method","query","page","headers","referer","stop","ALLOWED_ACTION","_ALLOWED_ACTION","_defineProperty","_x3","_x4","_ytProxyApiImpl","_callee3","_req$params","command","
|
1
|
+
{"version":3,"names":["axios","qs","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","getUserYTApiSetup","ytProxyApi","_x","_x2","_ytProxyApi","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","wrap","_callee$","_context","prev","next","ytProxyApiImpl","t0","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","stringify","abrupt","request","url","_objectSpread","getMetadata","data","body","timeout","responseType","then","_ref","_callee2","response","pipedSize","_callee2$","_context2","sent","_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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"}
|
@@ -24,14 +24,18 @@ nodekit.ctx.log('AppConfig details', {
|
|
24
24
|
appDevMode: appDevMode
|
25
25
|
});
|
26
26
|
var _nodekit$config2 = nodekit.config,
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
27
|
+
allowPasswordAuth = _nodekit$config2.allowPasswordAuth,
|
28
|
+
ytOAuthSettings = _nodekit$config2.ytOAuthSettings;
|
29
|
+
var authMiddlewares = [];
|
30
|
+
if (ytOAuthSettings) {
|
31
|
+
authMiddlewares.push(authorizationResolver(createOAuthAuthorizationResolver()));
|
32
|
+
}
|
33
|
+
if (allowPasswordAuth) {
|
34
|
+
authMiddlewares.push(authorizationResolver(createYTAuthorizationResolver()));
|
35
|
+
}
|
36
|
+
if (authMiddlewares.length) {
|
37
|
+
nodekit.config.appBeforeAuthMiddleware = [].concat(_toConsumableArray(nodekit.config.appBeforeAuthMiddleware || []), authMiddlewares);
|
38
|
+
nodekit.config.appAuthHandler = createAuthMiddleware();
|
35
39
|
}
|
36
40
|
(_nodekit$config$adjus = (_nodekit$config3 = nodekit.config).adjustAppConfig) === null || _nodekit$config$adjus === void 0 || _nodekit$config$adjus.call(_nodekit$config3, nodekit);
|
37
41
|
var app = new ExpressKit(nodekit, routes);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["path","NodeKit","ExpressKit","configureApp","createYTAuthorizationResolver","routes","createOAuthAuthorizationResolver","createAuthMiddleware","authorizationResolver","nodekit","configsPath","resolve","__dirname","_nodekit$config","config","appName","appEnv","appInstallation","appDevMode","ctx","log","_nodekit$config2","
|
1
|
+
{"version":3,"names":["path","NodeKit","ExpressKit","configureApp","createYTAuthorizationResolver","routes","createOAuthAuthorizationResolver","createAuthMiddleware","authorizationResolver","nodekit","configsPath","resolve","__dirname","_nodekit$config","config","appName","appEnv","appInstallation","appDevMode","ctx","log","_nodekit$config2","allowPasswordAuth","ytOAuthSettings","authMiddlewares","push","length","appBeforeAuthMiddleware","concat","_toConsumableArray","appAuthHandler","_nodekit$config$adjus","_nodekit$config3","adjustAppConfig","call","app","require","main","module","run"],"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,OAAOA,IAAI,MAAM,MAAM;AAEvB,SAAQC,OAAO,QAAO,qBAAqB;AAC3C,SAAQC,UAAU,QAAO,wBAAwB;AAEjD,SAAQC,YAAY,QAAO,iBAAiB;AAE5C,SAAQC,6BAA6B,QAAO,uBAAuB;AACnE,OAAOC,MAAM,MAAM,UAAU;AAC7B,SAAQC,gCAAgC,QAAO,qBAAqB;AACpE,SAAQC,oBAAoB,QAAO,6BAA6B;AAChE,SAAQC,qBAAqB,QAAO,uBAAuB;AAE3D,IAAMC,OAAO,GAAG,IAAIR,OAAO,CAAC;EAACS,WAAW,EAAEV,IAAI,CAACW,OAAO,CAACC,SAAS,EAAE,WAAW;AAAC,CAAC,CAAC;AAEhF,IAAAC,eAAA,GAAuDJ,OAAO,CAACK,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;AACnDT,OAAO,CAACU,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,GAA6CZ,OAAO,CAACK,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,CAACjB,qBAAqB,CAACF,gCAAgC,CAAC,CAAC,CAAC,CAAC;AACnF;AAEA,IAAIgB,iBAAiB,EAAE;EACnBE,eAAe,CAACC,IAAI,CAACjB,qBAAqB,CAACJ,6BAA6B,CAAC,CAAC,CAAC,CAAC;AAChF;AAEA,IAAIoB,eAAe,CAACE,MAAM,EAAE;EACxBjB,OAAO,CAACK,MAAM,CAACa,uBAAuB,MAAAC,MAAA,CAAAC,kBAAA,CAC9BpB,OAAO,CAACK,MAAM,CAACa,uBAAuB,IAAI,EAAE,GAC7CH,eAAe,CACrB;EAEDf,OAAO,CAACK,MAAM,CAACgB,cAAc,GAAGvB,oBAAoB,CAAC,CAAC;AAC1D;AAEA,CAAAwB,qBAAA,IAAAC,gBAAA,GAAAvB,OAAO,CAACK,MAAM,EAACmB,eAAe,cAAAF,qBAAA,eAA9BA,qBAAA,CAAAG,IAAA,CAAAF,gBAAA,EAAiCvB,OAAO,CAAC;AAEzC,IAAM0B,GAAG,GAAG,IAAIjC,UAAU,CAACO,OAAO,EAAEJ,MAAM,CAAC;AAC3CF,YAAY,CAACgC,GAAG,CAAC;AAEjB,IAAIC,OAAO,CAACC,IAAI,KAAKC,MAAM,EAAE;EACzBH,GAAG,CAACI,GAAG,CAAC,CAAC;AACb;AAEA,eAAeJ,GAAG"}
|