@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,2 +1,2 @@
|
|
1
1
|
import { AppMiddleware } from '@gravity-ui/expresskit';
|
2
|
-
export declare function createAuthMiddleware(
|
2
|
+
export declare function createAuthMiddleware(): AppMiddleware;
|
@@ -23,47 +23,52 @@ function isAuthError(e) {
|
|
23
23
|
var _e$response;
|
24
24
|
return e instanceof AuthError || axios.isAxiosError(e) && ((_e$response = e.response) === null || _e$response === void 0 ? void 0 : _e$response.status) === 401;
|
25
25
|
}
|
26
|
-
export function createAuthMiddleware(
|
26
|
+
export function createAuthMiddleware() {
|
27
27
|
return /*#__PURE__*/function () {
|
28
28
|
var _authMiddleware = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(req, res, next) {
|
29
|
-
var cfg, _yield$getXSRFToken, login, isAuthFailed, error;
|
29
|
+
var ytAuthCluster, cfg, _yield$getXSRFToken, login, isAuthFailed, error;
|
30
30
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
31
31
|
while (1) switch (_context.prev = _context.next) {
|
32
32
|
case 0:
|
33
|
-
|
33
|
+
ytAuthCluster = req.params.ytAuthCluster;
|
34
|
+
_context.prev = 1;
|
34
35
|
if (isAuthorized(req)) {
|
35
|
-
_context.next =
|
36
|
+
_context.next = 4;
|
36
37
|
break;
|
37
38
|
}
|
38
39
|
throw new AuthError();
|
39
|
-
case
|
40
|
+
case 4:
|
40
41
|
cfg = getUserYTApiSetup(ytAuthCluster, req);
|
41
|
-
_context.next =
|
42
|
+
_context.next = 7;
|
42
43
|
return getXSRFToken(req, cfg);
|
43
|
-
case
|
44
|
+
case 7:
|
44
45
|
_yield$getXSRFToken = _context.sent;
|
45
46
|
login = _yield$getXSRFToken.login;
|
46
47
|
req.yt.login = login;
|
47
|
-
_context.next =
|
48
|
+
_context.next = 19;
|
48
49
|
break;
|
49
|
-
case
|
50
|
-
_context.prev =
|
51
|
-
_context.t0 = _context["catch"](
|
50
|
+
case 12:
|
51
|
+
_context.prev = 12;
|
52
|
+
_context.t0 = _context["catch"](1);
|
52
53
|
isAuthFailed = isAuthError(_context.t0);
|
53
|
-
error = isAuthFailed ?
|
54
|
+
error = isAuthFailed ? {
|
55
|
+
extraData: {
|
56
|
+
ytAuthCluster: ytAuthCluster
|
57
|
+
}
|
58
|
+
} : _context.t0;
|
54
59
|
if (!(!req.routeInfo.ui && isAuthFailed)) {
|
55
|
-
_context.next =
|
60
|
+
_context.next = 19;
|
56
61
|
break;
|
57
62
|
}
|
58
63
|
sendError(res, error, 401);
|
59
64
|
return _context.abrupt("return");
|
60
|
-
case 18:
|
61
|
-
next();
|
62
65
|
case 19:
|
66
|
+
next();
|
67
|
+
case 20:
|
63
68
|
case "end":
|
64
69
|
return _context.stop();
|
65
70
|
}
|
66
|
-
}, _callee, null, [[
|
71
|
+
}, _callee, null, [[1, 12]]);
|
67
72
|
}));
|
68
73
|
function authMiddleware(_x, _x2, _x3) {
|
69
74
|
return _authMiddleware.apply(this, arguments);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["axios","isAuthorized","getUserYTApiSetup","getXSRFToken","sendError","AuthError","_Error","_inherits","_super","_createSuper","_classCallCheck","call","_createClass","_wrapNativeSuper","Error","isAuthError","e","_e$response","isAxiosError","response","status","createAuthMiddleware","
|
1
|
+
{"version":3,"names":["axios","isAuthorized","getUserYTApiSetup","getXSRFToken","sendError","AuthError","_Error","_inherits","_super","_createSuper","_classCallCheck","call","_createClass","_wrapNativeSuper","Error","isAuthError","e","_e$response","isAxiosError","response","status","createAuthMiddleware","_authMiddleware","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","next","ytAuthCluster","cfg","_yield$getXSRFToken","login","isAuthFailed","error","wrap","_callee$","_context","prev","params","sent","yt","t0","extraData","routeInfo","ui","abrupt","stop","authMiddleware","_x","_x2","_x3","apply","arguments"],"sources":["authorization.ts"],"sourcesContent":["import axios from 'axios';\nimport {isAuthorized} from '../utils/authorization';\nimport {getUserYTApiSetup} from '../components/requestsSetup';\nimport {AppMiddleware} from '@gravity-ui/expresskit';\nimport {getXSRFToken} from '../components/cluster-queries';\nimport {sendError} from '../utils';\n\nclass AuthError extends Error {\n constructor() {\n super('Authorization required');\n }\n}\n\nfunction isAuthError(e: unknown) {\n return e instanceof AuthError || (axios.isAxiosError(e) && e.response?.status === 401);\n}\n\nexport function createAuthMiddleware(): AppMiddleware {\n return async function authMiddleware(req, res, next) {\n const {ytAuthCluster} = req.params;\n\n try {\n if (!isAuthorized(req)) {\n throw new AuthError();\n }\n\n const cfg = getUserYTApiSetup(ytAuthCluster, req);\n const {login} = await getXSRFToken(req, cfg);\n req.yt.login = login;\n } catch (e) {\n const isAuthFailed = isAuthError(e);\n const error = isAuthFailed ? {extraData: {ytAuthCluster}} : e;\n\n if (!req.routeInfo.ui && isAuthFailed) {\n sendError(res, error, 401);\n return;\n }\n }\n\n next();\n };\n}\n"],"mappings":";;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAQC,YAAY,QAAO,wBAAwB;AACnD,SAAQC,iBAAiB,QAAO,6BAA6B;AAE7D,SAAQC,YAAY,QAAO,+BAA+B;AAC1D,SAAQC,SAAS,QAAO,UAAU;AAAC,IAE7BC,SAAS,0BAAAC,MAAA;EAAAC,SAAA,CAAAF,SAAA,EAAAC,MAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,SAAA;EACX,SAAAA,UAAA,EAAc;IAAAK,eAAA,OAAAL,SAAA;IAAA,OAAAG,MAAA,CAAAG,IAAA,OACJ,wBAAwB;EAClC;EAAC,OAAAC,YAAA,CAAAP,SAAA;AAAA,gBAAAQ,gBAAA,CAHmBC,KAAK;AAM7B,SAASC,WAAWA,CAACC,CAAU,EAAE;EAAA,IAAAC,WAAA;EAC7B,OAAOD,CAAC,YAAYX,SAAS,IAAKL,KAAK,CAACkB,YAAY,CAACF,CAAC,CAAC,IAAI,EAAAC,WAAA,GAAAD,CAAC,CAACG,QAAQ,cAAAF,WAAA,uBAAVA,WAAA,CAAYG,MAAM,MAAK,GAAI;AAC1F;AAEA,OAAO,SAASC,oBAAoBA,CAAA,EAAkB;EAClD;IAAA,IAAAC,eAAA,GAAAC,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAAO,SAAAC,QAA8BC,GAAG,EAAEC,GAAG,EAAEC,IAAI;MAAA,IAAAC,aAAA,EAAAC,GAAA,EAAAC,mBAAA,EAAAC,KAAA,EAAAC,YAAA,EAAAC,KAAA;MAAA,OAAAX,mBAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAT,IAAA;UAAA;YACxCC,aAAa,GAAIH,GAAG,CAACa,MAAM,CAA3BV,aAAa;YAAAQ,QAAA,CAAAC,IAAA;YAAA,IAGXtC,YAAY,CAAC0B,GAAG,CAAC;cAAAW,QAAA,CAAAT,IAAA;cAAA;YAAA;YAAA,MACZ,IAAIxB,SAAS,CAAC,CAAC;UAAA;YAGnB0B,GAAG,GAAG7B,iBAAiB,CAAC4B,aAAa,EAAEH,GAAG,CAAC;YAAAW,QAAA,CAAAT,IAAA;YAAA,OAC3B1B,YAAY,CAACwB,GAAG,EAAEI,GAAG,CAAC;UAAA;YAAAC,mBAAA,GAAAM,QAAA,CAAAG,IAAA;YAArCR,KAAK,GAAAD,mBAAA,CAALC,KAAK;YACZN,GAAG,CAACe,EAAE,CAACT,KAAK,GAAGA,KAAK;YAACK,QAAA,CAAAT,IAAA;YAAA;UAAA;YAAAS,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAK,EAAA,GAAAL,QAAA;YAEfJ,YAAY,GAAGnB,WAAW,CAAAuB,QAAA,CAAAK,EAAE,CAAC;YAC7BR,KAAK,GAAGD,YAAY,GAAG;cAACU,SAAS,EAAE;gBAACd,aAAa,EAAbA;cAAa;YAAC,CAAC,GAAAQ,QAAA,CAAAK,EAAI;YAAA,MAEzD,CAAChB,GAAG,CAACkB,SAAS,CAACC,EAAE,IAAIZ,YAAY;cAAAI,QAAA,CAAAT,IAAA;cAAA;YAAA;YACjCzB,SAAS,CAACwB,GAAG,EAAEO,KAAK,EAAE,GAAG,CAAC;YAAC,OAAAG,QAAA,CAAAS,MAAA;UAAA;YAKnClB,IAAI,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAS,QAAA,CAAAU,IAAA;QAAA;MAAA,GAAAtB,OAAA;IAAA,CACV;IAAA,SAtBqBuB,cAAcA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAA9B,eAAA,CAAA+B,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAdL,cAAc;EAAA;AAuBxC"}
|
@@ -3,28 +3,29 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
3
|
import { YT_CYPRESS_COOKIE_NAME } from '../../shared/constants';
|
4
4
|
export function createYTAuthorizationResolver() {
|
5
5
|
return /*#__PURE__*/function () {
|
6
|
-
var
|
7
|
-
var secret;
|
6
|
+
var _resolveYTAuthorization = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(req, _, next) {
|
7
|
+
var ytAuthCluster, secret;
|
8
8
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
9
9
|
while (1) switch (_context.prev = _context.next) {
|
10
10
|
case 0:
|
11
|
-
|
11
|
+
ytAuthCluster = req.params.ytAuthCluster;
|
12
|
+
secret = req.cookies["".concat(ytAuthCluster, ":").concat(YT_CYPRESS_COOKIE_NAME)];
|
12
13
|
req.yt = {
|
13
14
|
ytApiAuthHeaders: {
|
14
15
|
Cookie: "".concat(YT_CYPRESS_COOKIE_NAME, "=").concat(secret, ";")
|
15
16
|
}
|
16
17
|
};
|
17
18
|
next();
|
18
|
-
case
|
19
|
+
case 4:
|
19
20
|
case "end":
|
20
21
|
return _context.stop();
|
21
22
|
}
|
22
23
|
}, _callee);
|
23
24
|
}));
|
24
|
-
function
|
25
|
-
return
|
25
|
+
function resolveYTAuthorization(_x, _x2, _x3) {
|
26
|
+
return _resolveYTAuthorization.apply(this, arguments);
|
26
27
|
}
|
27
|
-
return
|
28
|
+
return resolveYTAuthorization;
|
28
29
|
}();
|
29
30
|
}
|
30
31
|
// #sourceMappingURL=yt-auth.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["YT_CYPRESS_COOKIE_NAME","createYTAuthorizationResolver","
|
1
|
+
{"version":3,"names":["YT_CYPRESS_COOKIE_NAME","createYTAuthorizationResolver","_resolveYTAuthorization","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","_","next","ytAuthCluster","secret","wrap","_callee$","_context","prev","params","cookies","concat","yt","ytApiAuthHeaders","Cookie","stop","resolveYTAuthorization","_x","_x2","_x3","apply","arguments"],"sources":["yt-auth.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport {AppMiddleware} from '@gravity-ui/expresskit';\nimport {YT_CYPRESS_COOKIE_NAME} from '../../shared/constants';\n\nexport function createYTAuthorizationResolver(): AppMiddleware {\n return async function resolveYTAuthorization(req: Request, _: Response, next) {\n const {ytAuthCluster} = req.params;\n\n const secret: string = req.cookies[`${ytAuthCluster}:${YT_CYPRESS_COOKIE_NAME}`];\n\n req.yt = {\n ytApiAuthHeaders: {\n Cookie: `${YT_CYPRESS_COOKIE_NAME}=${secret};`,\n },\n };\n\n next();\n };\n}\n"],"mappings":";;AAEA,SAAQA,sBAAsB,QAAO,wBAAwB;AAE7D,OAAO,SAASC,6BAA6BA,CAAA,EAAkB;EAC3D;IAAA,IAAAC,uBAAA,GAAAC,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAAO,SAAAC,QAAsCC,GAAY,EAAEC,CAAW,EAAEC,IAAI;MAAA,IAAAC,aAAA,EAAAC,MAAA;MAAA,OAAAP,mBAAA,CAAAQ,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAL,IAAA;UAAA;YACjEC,aAAa,GAAIH,GAAG,CAACS,MAAM,CAA3BN,aAAa;YAEdC,MAAc,GAAGJ,GAAG,CAACU,OAAO,IAAAC,MAAA,CAAIR,aAAa,OAAAQ,MAAA,CAAIlB,sBAAsB,EAAG;YAEhFO,GAAG,CAACY,EAAE,GAAG;cACLC,gBAAgB,EAAE;gBACdC,MAAM,KAAAH,MAAA,CAAKlB,sBAAsB,OAAAkB,MAAA,CAAIP,MAAM;cAC/C;YACJ,CAAC;YAEDF,IAAI,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAK,QAAA,CAAAQ,IAAA;QAAA;MAAA,GAAAhB,OAAA;IAAA,CACV;IAAA,SAZqBiB,sBAAsBA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAxB,uBAAA,CAAAyB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAtBL,sBAAsB;EAAA;AAahD"}
|
@@ -6,7 +6,7 @@ import { ytProxyApi } from './controllers/yt-proxy-api';
|
|
6
6
|
import { settingsCreate, settingsDeleteItem, settingsGet, settingsGetItem, settingsSetItem } from './controllers/settings';
|
7
7
|
import { homeIndex, homeRedirect } from './controllers/home';
|
8
8
|
import { handleClusterInfo } from './controllers/cluster-info';
|
9
|
-
import { clusterVersions } from './controllers/clusters';
|
9
|
+
import { clusterAuthStatus, clusterVersions } from './controllers/clusters';
|
10
10
|
import { tableColumnPresetGet, tableColumnPresetSave } from './controllers/table-column-preset';
|
11
11
|
import { ping } from './controllers/ping';
|
12
12
|
import { handleChangePassword, handleLogin } from './controllers/login';
|
@@ -22,25 +22,28 @@ var HOME_INDEX_TARGET = {
|
|
22
22
|
ui: true
|
23
23
|
};
|
24
24
|
var routes = {
|
25
|
-
'GET /change-password/': HOME_INDEX_TARGET,
|
25
|
+
'GET /:ytAuthCluster/change-password/': HOME_INDEX_TARGET,
|
26
26
|
'GET /': HOME_INDEX_TARGET,
|
27
27
|
'GET /ping': {
|
28
28
|
handler: ping,
|
29
29
|
authPolicy: AuthPolicy.disabled
|
30
30
|
},
|
31
|
-
'GET /api/cluster-info/:
|
31
|
+
'GET /api/cluster-info/:ytAuthCluster': {
|
32
32
|
handler: handleClusterInfo
|
33
33
|
},
|
34
|
-
'GET /api/cluster-params/:
|
34
|
+
'GET /api/cluster-params/:ytAuthCluster': {
|
35
35
|
handler: clusterParams
|
36
36
|
},
|
37
37
|
'GET /api/clusters/versions': {
|
38
38
|
handler: clusterVersions
|
39
39
|
},
|
40
|
-
'GET /api/
|
40
|
+
'GET /api/clusters/auth-status': {
|
41
|
+
handler: clusterAuthStatus
|
42
|
+
},
|
43
|
+
'GET /api/pool-names/:ytAuthCluster': {
|
41
44
|
handler: getClusterPools
|
42
45
|
},
|
43
|
-
'POST /api/yt/login': {
|
46
|
+
'POST /api/yt/:ytAuthCluster/login': {
|
44
47
|
handler: handleLogin,
|
45
48
|
ui: true
|
46
49
|
},
|
@@ -60,7 +63,7 @@ var routes = {
|
|
60
63
|
handler: oauthLogout,
|
61
64
|
ui: true
|
62
65
|
},
|
63
|
-
'POST /api/yt/change-password': {
|
66
|
+
'POST /api/yt/:ytAuthCluster/change-password': {
|
64
67
|
handler: handleChangePassword,
|
65
68
|
ui: true
|
66
69
|
},
|
@@ -70,56 +73,56 @@ var routes = {
|
|
70
73
|
'POST /api/markdown-to-html': {
|
71
74
|
handler: markdownToHtmlHandler
|
72
75
|
},
|
73
|
-
'GET /api/yt/:
|
76
|
+
'GET /api/yt/:ytAuthCluster/api/:version/:command': {
|
74
77
|
handler: ytTvmApiHandler
|
75
78
|
},
|
76
|
-
'POST /api/yt/:
|
79
|
+
'POST /api/yt/:ytAuthCluster/api/:version/:command': {
|
77
80
|
handler: ytTvmApiHandler
|
78
81
|
},
|
79
|
-
'PUT /api/yt/:
|
82
|
+
'PUT /api/yt/:ytAuthCluster/api/:version/:command': {
|
80
83
|
handler: ytTvmApiHandler
|
81
84
|
},
|
82
|
-
'GET /api/yt-proxy/:
|
85
|
+
'GET /api/yt-proxy/:ytAuthCluster/:command': {
|
83
86
|
handler: ytProxyApi
|
84
87
|
},
|
85
|
-
'GET /api/odin/proxy/:action/:
|
88
|
+
'GET /api/odin/proxy/:action/:ytAuthCluster?': {
|
86
89
|
handler: odinProxyApi
|
87
90
|
},
|
88
91
|
'GET /api/odin/clusters/availability': {
|
89
92
|
handler: getClustersAvailability
|
90
93
|
},
|
91
|
-
'POST /api/chyt/:
|
94
|
+
'POST /api/chyt/:ytAuthCluster/:action': {
|
92
95
|
handler: chytProxyApi
|
93
96
|
},
|
94
|
-
'GET /api/settings/:username': {
|
97
|
+
'GET /api/settings/:ytAuthCluster/:username': {
|
95
98
|
handler: settingsGet
|
96
99
|
},
|
97
|
-
'POST /api/settings/:username': {
|
100
|
+
'POST /api/settings/:ytAuthCluster/:username': {
|
98
101
|
handler: settingsCreate
|
99
102
|
},
|
100
|
-
'GET /api/settings/:username/:path': {
|
103
|
+
'GET /api/settings/:ytAuthCluster/:username/:path': {
|
101
104
|
handler: settingsGetItem
|
102
105
|
},
|
103
|
-
'PUT /api/settings/:username/:path': {
|
106
|
+
'PUT /api/settings/:ytAuthCluster/:username/:path': {
|
104
107
|
handler: settingsSetItem
|
105
108
|
},
|
106
|
-
'DELETE /api/settings/:username/:path': {
|
109
|
+
'DELETE /api/settings/:ytAuthCluster/:username/:path': {
|
107
110
|
handler: settingsDeleteItem
|
108
111
|
},
|
109
|
-
'GET /api/table-column-preset/:hash': {
|
112
|
+
'GET /api/table-column-preset/:ytAuthCluster/:hash': {
|
110
113
|
handler: tableColumnPresetGet
|
111
114
|
},
|
112
|
-
'POST /api/table-column-preset': {
|
115
|
+
'POST /api/table-column-preset/:ytAuthCluster': {
|
113
116
|
handler: tableColumnPresetSave
|
114
117
|
},
|
115
|
-
'GET /:
|
116
|
-
'GET /:
|
118
|
+
'GET /:ytAuthCluster/': HOME_INDEX_TARGET,
|
119
|
+
'GET /:ytAuthCluster/maintenance': {
|
117
120
|
handler: homeRedirect
|
118
121
|
},
|
119
|
-
'GET /:
|
120
|
-
'GET /:
|
121
|
-
'GET /:
|
122
|
-
'GET /:
|
122
|
+
'GET /:ytAuthCluster/:page': HOME_INDEX_TARGET,
|
123
|
+
'GET /:ytAuthCluster/:page/:tab': HOME_INDEX_TARGET,
|
124
|
+
'GET /:ytAuthCluster/:page/:operation/:tab': HOME_INDEX_TARGET,
|
125
|
+
'GET /:ytAuthCluster/:page/:operation/:job/:tab': HOME_INDEX_TARGET
|
123
126
|
};
|
124
127
|
export default routes;
|
125
128
|
// #sourceMappingURL=routes.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["AuthPolicy","clusterParams","ytTvmApiHandler","handleRemoteCopy","ytProxyApi","settingsCreate","settingsDeleteItem","settingsGet","settingsGetItem","settingsSetItem","homeIndex","homeRedirect","handleClusterInfo","clusterVersions","tableColumnPresetGet","tableColumnPresetSave","ping","handleChangePassword","handleLogin","getClusterPools","markdownToHtmlHandler","odinProxyApi","getClustersAvailability","chytProxyApi","oauthCallback","oauthLogin","oauthLogout","handleLogout","HOME_INDEX_TARGET","handler","ui","routes","authPolicy","disabled"],"sources":["routes.ts"],"sourcesContent":["import {AppRouteDescription, AppRoutes, AuthPolicy} from '@gravity-ui/expresskit';\nimport {clusterParams} from './controllers/cluster-params';\nimport {ytTvmApiHandler} from './controllers/yt-api';\nimport {handleRemoteCopy} from './controllers/remote-copy';\nimport {ytProxyApi} from './controllers/yt-proxy-api';\nimport {\n settingsCreate,\n settingsDeleteItem,\n settingsGet,\n settingsGetItem,\n settingsSetItem,\n} from './controllers/settings';\nimport {homeIndex, homeRedirect} from './controllers/home';\nimport {handleClusterInfo} from './controllers/cluster-info';\n\nimport {clusterVersions} from './controllers/clusters';\nimport {tableColumnPresetGet, tableColumnPresetSave} from './controllers/table-column-preset';\nimport {ping} from './controllers/ping';\nimport {handleChangePassword, handleLogin} from './controllers/login';\nimport {getClusterPools} from './controllers/scheduling-pools';\nimport {markdownToHtmlHandler} from './controllers/markdown-to-html';\nimport {odinProxyApi} from './controllers/odin-proxy-api';\nimport {getClustersAvailability} from './controllers/availability';\nimport {chytProxyApi} from './controllers/chyt-api';\nimport {oauthCallback, oauthLogin, oauthLogout} from './controllers/oauth-login';\nimport {handleLogout} from './controllers/logout';\n\nconst HOME_INDEX_TARGET: AppRouteDescription = {handler: homeIndex, ui: true};\n\nconst routes: AppRoutes = {\n 'GET /change-password/': HOME_INDEX_TARGET,\n 'GET /': HOME_INDEX_TARGET,\n 'GET /ping': {handler: ping, authPolicy: AuthPolicy.disabled},\n 'GET /api/cluster-info/:
|
1
|
+
{"version":3,"names":["AuthPolicy","clusterParams","ytTvmApiHandler","handleRemoteCopy","ytProxyApi","settingsCreate","settingsDeleteItem","settingsGet","settingsGetItem","settingsSetItem","homeIndex","homeRedirect","handleClusterInfo","clusterAuthStatus","clusterVersions","tableColumnPresetGet","tableColumnPresetSave","ping","handleChangePassword","handleLogin","getClusterPools","markdownToHtmlHandler","odinProxyApi","getClustersAvailability","chytProxyApi","oauthCallback","oauthLogin","oauthLogout","handleLogout","HOME_INDEX_TARGET","handler","ui","routes","authPolicy","disabled"],"sources":["routes.ts"],"sourcesContent":["import {AppRouteDescription, AppRoutes, AuthPolicy} from '@gravity-ui/expresskit';\nimport {clusterParams} from './controllers/cluster-params';\nimport {ytTvmApiHandler} from './controllers/yt-api';\nimport {handleRemoteCopy} from './controllers/remote-copy';\nimport {ytProxyApi} from './controllers/yt-proxy-api';\nimport {\n settingsCreate,\n settingsDeleteItem,\n settingsGet,\n settingsGetItem,\n settingsSetItem,\n} from './controllers/settings';\nimport {homeIndex, homeRedirect} from './controllers/home';\nimport {handleClusterInfo} from './controllers/cluster-info';\n\nimport {clusterAuthStatus, clusterVersions} from './controllers/clusters';\nimport {tableColumnPresetGet, tableColumnPresetSave} from './controllers/table-column-preset';\nimport {ping} from './controllers/ping';\nimport {handleChangePassword, handleLogin} from './controllers/login';\nimport {getClusterPools} from './controllers/scheduling-pools';\nimport {markdownToHtmlHandler} from './controllers/markdown-to-html';\nimport {odinProxyApi} from './controllers/odin-proxy-api';\nimport {getClustersAvailability} from './controllers/availability';\nimport {chytProxyApi} from './controllers/chyt-api';\nimport {oauthCallback, oauthLogin, oauthLogout} from './controllers/oauth-login';\nimport {handleLogout} from './controllers/logout';\n\nconst HOME_INDEX_TARGET: AppRouteDescription = {handler: homeIndex, ui: true};\n\nconst routes: AppRoutes = {\n 'GET /:ytAuthCluster/change-password/': HOME_INDEX_TARGET,\n 'GET /': HOME_INDEX_TARGET,\n 'GET /ping': {handler: ping, authPolicy: AuthPolicy.disabled},\n 'GET /api/cluster-info/:ytAuthCluster': {handler: handleClusterInfo},\n 'GET /api/cluster-params/:ytAuthCluster': {handler: clusterParams},\n 'GET /api/clusters/versions': {handler: clusterVersions},\n 'GET /api/clusters/auth-status': {handler: clusterAuthStatus},\n 'GET /api/pool-names/:ytAuthCluster': {handler: getClusterPools},\n 'POST /api/yt/:ytAuthCluster/login': {handler: handleLogin, ui: true},\n 'GET /api/yt/logout': {handler: handleLogout, ui: true},\n\n 'GET /oauth/login': {handler: oauthLogin, ui: true},\n 'GET /api/oauth/callback': {handler: oauthCallback, ui: true},\n 'GET /api/oauth/logout/callback': {handler: oauthLogout, ui: true},\n\n 'POST /api/yt/:ytAuthCluster/change-password': {handler: handleChangePassword, ui: true},\n 'POST /api/remote-copy': {handler: handleRemoteCopy},\n\n 'POST /api/markdown-to-html': {handler: markdownToHtmlHandler},\n\n 'GET /api/yt/:ytAuthCluster/api/:version/:command': {handler: ytTvmApiHandler},\n 'POST /api/yt/:ytAuthCluster/api/:version/:command': {handler: ytTvmApiHandler},\n 'PUT /api/yt/:ytAuthCluster/api/:version/:command': {handler: ytTvmApiHandler},\n\n 'GET /api/yt-proxy/:ytAuthCluster/:command': {handler: ytProxyApi},\n\n 'GET /api/odin/proxy/:action/:ytAuthCluster?': {handler: odinProxyApi},\n 'GET /api/odin/clusters/availability': {handler: getClustersAvailability},\n\n 'POST /api/chyt/:ytAuthCluster/:action': {handler: chytProxyApi},\n\n 'GET /api/settings/:ytAuthCluster/:username': {handler: settingsGet},\n 'POST /api/settings/:ytAuthCluster/:username': {handler: settingsCreate},\n 'GET /api/settings/:ytAuthCluster/:username/:path': {handler: settingsGetItem},\n 'PUT /api/settings/:ytAuthCluster/:username/:path': {handler: settingsSetItem},\n 'DELETE /api/settings/:ytAuthCluster/:username/:path': {handler: settingsDeleteItem},\n\n 'GET /api/table-column-preset/:ytAuthCluster/:hash': {\n handler: tableColumnPresetGet,\n },\n 'POST /api/table-column-preset/:ytAuthCluster': {handler: tableColumnPresetSave},\n\n 'GET /:ytAuthCluster/': HOME_INDEX_TARGET,\n 'GET /:ytAuthCluster/maintenance': {handler: homeRedirect},\n 'GET /:ytAuthCluster/:page': HOME_INDEX_TARGET,\n 'GET /:ytAuthCluster/:page/:tab': HOME_INDEX_TARGET,\n 'GET /:ytAuthCluster/:page/:operation/:tab': HOME_INDEX_TARGET,\n 'GET /:ytAuthCluster/:page/:operation/:job/:tab': HOME_INDEX_TARGET,\n};\n\nexport default routes;\n"],"mappings":"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"}
|
@@ -6,7 +6,7 @@ import { AppContext } from '@gravity-ui/nodekit';
|
|
6
6
|
export declare function isProductionEnv(): boolean;
|
7
7
|
export declare function isLocalModeByEnvironment(): boolean;
|
8
8
|
export declare function getInterfaceVersion(): any;
|
9
|
-
export declare function prepareErrorToSend(e: unknown): import("../../@types/types").YTError
|
9
|
+
export declare function prepareErrorToSend(e: unknown): import("../../@types/types").YTError | Record<string, any>;
|
10
10
|
export declare function sendResponse(res: Response, data: object): Response<any, Record<string, any>>;
|
11
11
|
export declare function sendError(res: Response, error: unknown, errCode?: number): Response<any, Record<string, any>>;
|
12
12
|
export declare const UNEXPECTED_PIPE_AXIOS_RESPONSE = "Unexpected behavior: response.data should be an instance of stream.Readable";
|
@@ -31,18 +31,24 @@ export function getInterfaceVersion() {
|
|
31
31
|
return 'local';
|
32
32
|
}
|
33
33
|
}
|
34
|
+
function isExtraDataError(error) {
|
35
|
+
return error.extraData !== undefined;
|
36
|
+
}
|
34
37
|
export function prepareErrorToSend(e) {
|
35
|
-
var
|
38
|
+
var res = {
|
39
|
+
message: ''
|
40
|
+
};
|
36
41
|
if (e instanceof Error) {
|
37
|
-
message = _toString(e);
|
42
|
+
res.message = _toString(e);
|
38
43
|
} else if (isYTError(e)) {
|
39
44
|
return e;
|
40
45
|
} else {
|
41
|
-
message = JSON.stringify(e);
|
46
|
+
res.message = JSON.stringify(e);
|
42
47
|
}
|
43
|
-
|
44
|
-
|
45
|
-
}
|
48
|
+
if (isExtraDataError(e)) {
|
49
|
+
res.extraData = e.extraData;
|
50
|
+
}
|
51
|
+
return res;
|
46
52
|
}
|
47
53
|
export function sendResponse(res, data) {
|
48
54
|
return res.set('content-type', 'application/json').status(200).send(JSON.stringify(data));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["stream","isYTError","getApp","path","isProductionEnv","config","appEnv","isLocalModeByEnvironment","process","env","APP_ENV","getInterfaceVersion","INIT_CWD","packageJsonPath","resolve","require","version","e","nodekit","ctx","logError","concat","prepareErrorToSend","message","Error","_toString","JSON","stringify","sendResponse","res","data","set","status","send","sendError","error","errCode","arguments","length","undefined","errData","asAxiosError","isAxiosError","UNEXPECTED_PIPE_AXIOS_RESPONSE","UNEXPECTED_PIPE_AXIOS_ERROR","pipeAxiosErrorOrFalse","_x","_x2","_x3","_pipeAxiosErrorOrFalse","apply","_asyncToGenerator","_regeneratorRuntime","mark","_callee","dst","wrap","_callee$","_context","prev","next","pipeAxiosResponse","response","abrupt","sent","stop","LOG_HEADERS","_x4","_x5","_x6","_pipeAxiosResponse","_callee2","src","logMsgPrefix","transformHeaders","_args2","_callee2$","_context2","v","Readable","pipeResponse","headers","Promise","_x7","_x8","_x9","_x10","_x11","_x12","_pipeResponse","_callee3","headersToLog","pipedDataSize","_args3","_callee3$","_context3","_forEach","value","key","setHeader","_pick","log","pipeReadableToWriteable","headerContentLength","_x13","_x14","_x15","_x16","_pipeReadableToWriteable","_callee4","firstChunk","closePromise","_callee4$","_context4","reject","on","chunk","pipe","sendAndLogError","_x17","_x18","_x19","_x20","_sendAndLogError","_callee5","extra","ae","_ae$response","_args5","_callee5$","_context5","toJSON","append","statusText","mesasge"],"sources":["index.ts"],"sourcesContent":["import * as stream from 'stream';\nimport _ from 'lodash';\nimport type {Response} from 'express';\nimport {AxiosError, AxiosResponse} from 'axios';\nimport {AppContext} from '@gravity-ui/nodekit';\nimport {isYTError} from '../../shared/utils';\nimport {getApp} from '../ServerFactory';\nimport path from 'path';\n\nexport function isProductionEnv() {\n return getApp().config.appEnv !== 'development';\n}\n\nexport function isLocalModeByEnvironment() {\n return process.env.APP_ENV === 'local';\n}\n\nexport function getInterfaceVersion() {\n if (isProductionEnv()) {\n const {INIT_CWD} = process.env;\n const packageJsonPath = INIT_CWD\n ? path.resolve(INIT_CWD, 'package.json')\n : path.resolve('./package.json');\n try {\n /* eslint-disable-next-line global-require, security/detect-non-literal-require */\n return require(packageJsonPath).version;\n } catch (e) {\n getApp().nodekit.ctx.logError(`Failed to get version from ${packageJsonPath}`, e, {\n INIT_CWD,\n packageJsonPath,\n });\n return 'unkonwn';\n }\n } else {\n return 'local';\n }\n}\n\nexport function prepareErrorToSend(e: unknown) {\n let message = '';\n if (e instanceof Error) {\n message = _.toString(e);\n } else if (isYTError(e)) {\n return e;\n } else {\n message = JSON.stringify(e);\n }\n return {message};\n}\n\nexport function sendResponse(res: Response, data: object) {\n return res.set('content-type', 'application/json').status(200).send(JSON.stringify(data));\n}\n\nexport function sendError(res: Response, error: unknown, errCode = 500) {\n const errData = prepareErrorToSend(error);\n return res.set('content-type', 'application/json').status(errCode).send(errData);\n}\n\nfunction asAxiosError<T>(e: Error | AxiosError<T>): AxiosError<T> | undefined {\n return (e as AxiosError).isAxiosError ? (e as AxiosError<T>) : undefined;\n}\n\nexport const UNEXPECTED_PIPE_AXIOS_RESPONSE =\n 'Unexpected behavior: response.data should be an instance of stream.Readable';\nexport const UNEXPECTED_PIPE_AXIOS_ERROR =\n 'Unexpected behavior: e.response.data should be an instance of stream.Readable';\n\nexport async function pipeAxiosErrorOrFalse(ctx: AppContext, dst: Response, e: AxiosError) {\n return await pipeAxiosResponse(ctx, dst, e.response, '[Send error]');\n}\n\ninterface PipedResponseSize {\n headerContentLength?: string;\n pipedDataSize: number;\n}\n\nconst LOG_HEADERS = ['x-yt-proxy', 'x-yt-request-id', 'x-yt-trace-id', 'content-length'];\n\nexport async function pipeAxiosResponse(\n ctx: AppContext,\n dst: Response,\n src?: AxiosResponse<stream.Readable | unknown>,\n logMsgPrefix = '',\n transformHeaders: (headers: any) => typeof headers = (v) => v,\n): Promise<PipedResponseSize | undefined> {\n if (src?.data instanceof stream.Readable) {\n return await pipeResponse(\n logMsgPrefix,\n ctx,\n dst,\n src.data,\n src.headers,\n src.status,\n transformHeaders,\n );\n } else {\n return Promise.resolve(undefined);\n }\n}\n\nexport async function pipeResponse(\n logMsgPrefix: string,\n ctx: AppContext,\n dst: Response,\n data: stream.Readable,\n headers?: any,\n status?: number,\n transformHeaders: (headers: any) => typeof headers = (v) => v,\n) {\n dst.status(status ?? 500);\n\n _.forEach(transformHeaders(headers), (value, key) => {\n if (key !== 'content-length' && key !== 'vary' && key !== 'www-authenticate') {\n dst.setHeader(key, value);\n }\n });\n\n const headersToLog = _.pick(headers, LOG_HEADERS);\n ctx.log(logMsgPrefix + ' Headers', headersToLog);\n\n const pipedDataSize = await pipeReadableToWriteable(ctx, dst, data, logMsgPrefix);\n return {headerContentLength: headers['content-length'], pipedDataSize};\n}\n\nexport async function pipeReadableToWriteable(\n ctx: AppContext,\n dst: stream.Writable,\n src: stream.Readable,\n logMsgPrefix: string,\n) {\n let firstChunk = true;\n let pipedDataSize = 0;\n const closePromise = new Promise<void>((resolve, reject) => {\n src.on('data', (chunk) => {\n if (firstChunk) {\n ctx.log(logMsgPrefix + ' TTFB');\n firstChunk = false;\n }\n pipedDataSize += chunk?.length;\n });\n src.on('error', (e: any) => {\n resolve = () => {};\n reject(e);\n });\n src.on('close', () => {\n ctx.log(logMsgPrefix + ' Response stream closed', {\n pipedDataSize,\n });\n resolve();\n });\n });\n src.pipe(dst);\n await closePromise;\n\n return pipedDataSize;\n}\n\nexport async function sendAndLogError(\n ctx: AppContext,\n res: Response,\n status: number | null,\n e: Error | AxiosError,\n extra: any = {},\n) {\n const ae = asAxiosError(e);\n if (ae) {\n ctx.logError('AxiosError', ae.toJSON(), extra);\n if (await pipeAxiosErrorOrFalse(ctx, res, ae)) {\n return;\n }\n\n if (ae.response?.status) {\n _.forEach(ae.response.headers, (value, key) => {\n res.append(key, value);\n });\n return res.status(ae.response.status).send(ae.response.data || ae.response.statusText);\n }\n\n return res.status(504).send({message: _.toString(e)});\n }\n\n ctx.logError('Error', e, extra);\n\n if (e instanceof Error) {\n return res.status(status || 500).send({message: _.toString(e)});\n }\n\n if (typeof e === 'string') {\n return res.status(status || 500).send({mesasge: e});\n }\n\n if (isYTError(e)) {\n return res.status(status || 500).send(e);\n }\n\n return res.status(status || 500).send({message: JSON.stringify(e)});\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["stream","isYTError","getApp","path","isProductionEnv","config","appEnv","isLocalModeByEnvironment","process","env","APP_ENV","getInterfaceVersion","INIT_CWD","packageJsonPath","resolve","require","version","e","nodekit","ctx","logError","concat","isExtraDataError","error","extraData","undefined","prepareErrorToSend","res","message","Error","_toString","JSON","stringify","sendResponse","data","set","status","send","sendError","errCode","arguments","length","errData","asAxiosError","isAxiosError","UNEXPECTED_PIPE_AXIOS_RESPONSE","UNEXPECTED_PIPE_AXIOS_ERROR","pipeAxiosErrorOrFalse","_x","_x2","_x3","_pipeAxiosErrorOrFalse","apply","_asyncToGenerator","_regeneratorRuntime","mark","_callee","dst","wrap","_callee$","_context","prev","next","pipeAxiosResponse","response","abrupt","sent","stop","LOG_HEADERS","_x4","_x5","_x6","_pipeAxiosResponse","_callee2","src","logMsgPrefix","transformHeaders","_args2","_callee2$","_context2","v","Readable","pipeResponse","headers","Promise","_x7","_x8","_x9","_x10","_x11","_x12","_pipeResponse","_callee3","headersToLog","pipedDataSize","_args3","_callee3$","_context3","_forEach","value","key","setHeader","_pick","log","pipeReadableToWriteable","headerContentLength","_x13","_x14","_x15","_x16","_pipeReadableToWriteable","_callee4","firstChunk","closePromise","_callee4$","_context4","reject","on","chunk","pipe","sendAndLogError","_x17","_x18","_x19","_x20","_sendAndLogError","_callee5","extra","ae","_ae$response","_args5","_callee5$","_context5","toJSON","append","statusText","mesasge"],"sources":["index.ts"],"sourcesContent":["import * as stream from 'stream';\nimport _ from 'lodash';\nimport type {Response} from 'express';\nimport {AxiosError, AxiosResponse} from 'axios';\nimport {AppContext} from '@gravity-ui/nodekit';\nimport {isYTError} from '../../shared/utils';\nimport {getApp} from '../ServerFactory';\nimport path from 'path';\n\nexport function isProductionEnv() {\n return getApp().config.appEnv !== 'development';\n}\n\nexport function isLocalModeByEnvironment() {\n return process.env.APP_ENV === 'local';\n}\n\nexport function getInterfaceVersion() {\n if (isProductionEnv()) {\n const {INIT_CWD} = process.env;\n const packageJsonPath = INIT_CWD\n ? path.resolve(INIT_CWD, 'package.json')\n : path.resolve('./package.json');\n try {\n /* eslint-disable-next-line global-require, security/detect-non-literal-require */\n return require(packageJsonPath).version;\n } catch (e) {\n getApp().nodekit.ctx.logError(`Failed to get version from ${packageJsonPath}`, e, {\n INIT_CWD,\n packageJsonPath,\n });\n return 'unkonwn';\n }\n } else {\n return 'local';\n }\n}\n\ntype ExtraError = {\n extraData: Record<string, unknown>;\n};\n\nfunction isExtraDataError(error: ExtraError | unknown): error is ExtraError {\n return (error as ExtraError).extraData !== undefined;\n}\n\nexport function prepareErrorToSend(e: unknown) {\n const res: Record<string, any> = {\n message: '',\n };\n\n if (e instanceof Error) {\n res.message = _.toString(e);\n } else if (isYTError(e)) {\n return e;\n } else {\n res.message = JSON.stringify(e);\n }\n\n if (isExtraDataError(e)) {\n res.extraData = e.extraData;\n }\n\n return res;\n}\n\nexport function sendResponse(res: Response, data: object) {\n return res.set('content-type', 'application/json').status(200).send(JSON.stringify(data));\n}\n\nexport function sendError(res: Response, error: unknown, errCode = 500) {\n const errData = prepareErrorToSend(error);\n return res.set('content-type', 'application/json').status(errCode).send(errData);\n}\n\nfunction asAxiosError<T>(e: Error | AxiosError<T>): AxiosError<T> | undefined {\n return (e as AxiosError).isAxiosError ? (e as AxiosError<T>) : undefined;\n}\n\nexport const UNEXPECTED_PIPE_AXIOS_RESPONSE =\n 'Unexpected behavior: response.data should be an instance of stream.Readable';\nexport const UNEXPECTED_PIPE_AXIOS_ERROR =\n 'Unexpected behavior: e.response.data should be an instance of stream.Readable';\n\nexport async function pipeAxiosErrorOrFalse(ctx: AppContext, dst: Response, e: AxiosError) {\n return await pipeAxiosResponse(ctx, dst, e.response, '[Send error]');\n}\n\ninterface PipedResponseSize {\n headerContentLength?: string;\n pipedDataSize: number;\n}\n\nconst LOG_HEADERS = ['x-yt-proxy', 'x-yt-request-id', 'x-yt-trace-id', 'content-length'];\n\nexport async function pipeAxiosResponse(\n ctx: AppContext,\n dst: Response,\n src?: AxiosResponse<stream.Readable | unknown>,\n logMsgPrefix = '',\n transformHeaders: (headers: any) => typeof headers = (v) => v,\n): Promise<PipedResponseSize | undefined> {\n if (src?.data instanceof stream.Readable) {\n return await pipeResponse(\n logMsgPrefix,\n ctx,\n dst,\n src.data,\n src.headers,\n src.status,\n transformHeaders,\n );\n } else {\n return Promise.resolve(undefined);\n }\n}\n\nexport async function pipeResponse(\n logMsgPrefix: string,\n ctx: AppContext,\n dst: Response,\n data: stream.Readable,\n headers?: any,\n status?: number,\n transformHeaders: (headers: any) => typeof headers = (v) => v,\n) {\n dst.status(status ?? 500);\n\n _.forEach(transformHeaders(headers), (value, key) => {\n if (key !== 'content-length' && key !== 'vary' && key !== 'www-authenticate') {\n dst.setHeader(key, value);\n }\n });\n\n const headersToLog = _.pick(headers, LOG_HEADERS);\n ctx.log(logMsgPrefix + ' Headers', headersToLog);\n\n const pipedDataSize = await pipeReadableToWriteable(ctx, dst, data, logMsgPrefix);\n return {headerContentLength: headers['content-length'], pipedDataSize};\n}\n\nexport async function pipeReadableToWriteable(\n ctx: AppContext,\n dst: stream.Writable,\n src: stream.Readable,\n logMsgPrefix: string,\n) {\n let firstChunk = true;\n let pipedDataSize = 0;\n const closePromise = new Promise<void>((resolve, reject) => {\n src.on('data', (chunk) => {\n if (firstChunk) {\n ctx.log(logMsgPrefix + ' TTFB');\n firstChunk = false;\n }\n pipedDataSize += chunk?.length;\n });\n src.on('error', (e: any) => {\n resolve = () => {};\n reject(e);\n });\n src.on('close', () => {\n ctx.log(logMsgPrefix + ' Response stream closed', {\n pipedDataSize,\n });\n resolve();\n });\n });\n src.pipe(dst);\n await closePromise;\n\n return pipedDataSize;\n}\n\nexport async function sendAndLogError(\n ctx: AppContext,\n res: Response,\n status: number | null,\n e: Error | AxiosError,\n extra: any = {},\n) {\n const ae = asAxiosError(e);\n if (ae) {\n ctx.logError('AxiosError', ae.toJSON(), extra);\n if (await pipeAxiosErrorOrFalse(ctx, res, ae)) {\n return;\n }\n\n if (ae.response?.status) {\n _.forEach(ae.response.headers, (value, key) => {\n res.append(key, value);\n });\n return res.status(ae.response.status).send(ae.response.data || ae.response.statusText);\n }\n\n return res.status(504).send({message: _.toString(e)});\n }\n\n ctx.logError('Error', e, extra);\n\n if (e instanceof Error) {\n return res.status(status || 500).send({message: _.toString(e)});\n }\n\n if (typeof e === 'string') {\n return res.status(status || 500).send({mesasge: e});\n }\n\n if (isYTError(e)) {\n return res.status(status || 500).send(e);\n }\n\n return res.status(status || 500).send({message: JSON.stringify(e)});\n}\n"],"mappings":"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"}
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { PromiseOrValue } from '../../../@types/types';
|
2
2
|
declare const provider: SettingsProvider;
|
3
3
|
export interface SettingsProvider {
|
4
|
-
get<T>(username: string, path: string): Promise<T | undefined>;
|
5
|
-
set<T>(username: string, path: string, value: T): Promise<void>;
|
6
|
-
remove(username: string, path: string): Promise<void>;
|
7
|
-
getAll<Data extends object>(username: string): PromiseOrValue<Data | undefined>;
|
8
|
-
create(username: string): Promise<void>;
|
4
|
+
get<T>(username: string, path: string, cluster: string): Promise<T | undefined>;
|
5
|
+
set<T>(username: string, path: string, value: T, cluster: string): Promise<void>;
|
6
|
+
remove(username: string, path: string, cluster: string): Promise<void>;
|
7
|
+
getAll<Data extends object>(username: string, cluster: string): PromiseOrValue<Data | undefined>;
|
8
|
+
create(username: string, cluster: string): Promise<void>;
|
9
9
|
}
|
10
10
|
export default provider;
|
@@ -2,14 +2,14 @@ import axios from 'axios';
|
|
2
2
|
|
3
3
|
// @ts-expect-error
|
4
4
|
import yt from '@ytsaurus/javascript-wrapper/lib/yt';
|
5
|
-
function api(
|
5
|
+
function api(options) {
|
6
6
|
return axios.request({
|
7
|
-
method: method,
|
8
|
-
url:
|
7
|
+
method: options.method,
|
8
|
+
url: "/api/settings/".concat(options.cluster, "/").concat(options.username).concat(options.path),
|
9
9
|
headers: {
|
10
10
|
'content-type': 'application/json'
|
11
11
|
},
|
12
|
-
data: JSON.stringify(data)
|
12
|
+
data: JSON.stringify(options.data)
|
13
13
|
}).then(function (response) {
|
14
14
|
return response.data;
|
15
15
|
})["catch"](function (error) {
|
@@ -27,30 +27,56 @@ function api(method, username, path, data) {
|
|
27
27
|
});
|
28
28
|
}
|
29
29
|
var provider = {
|
30
|
-
get: function get(username, path) {
|
31
|
-
return api(
|
30
|
+
get: function get(username, path, cluster) {
|
31
|
+
return api({
|
32
|
+
method: 'get',
|
33
|
+
username: username,
|
34
|
+
path: '/' + path,
|
35
|
+
cluster: cluster
|
36
|
+
});
|
32
37
|
},
|
33
|
-
set: function set(username, path, value) {
|
38
|
+
set: function set(username, path, value, cluster) {
|
34
39
|
if (value === undefined) {
|
35
40
|
/**
|
36
41
|
* data-ui/core uses body-parser which interprets empty body of request as empty object {},
|
37
42
|
* i.e. setItem from src/server/controllers/settings.js will receive req.body === {} if value === undefined,
|
38
43
|
* so we have to remove it explicitly
|
39
44
|
*/
|
40
|
-
return provider.remove(username, path);
|
45
|
+
return provider.remove(username, path, cluster);
|
41
46
|
}
|
42
|
-
return api(
|
43
|
-
|
47
|
+
return api({
|
48
|
+
method: 'put',
|
49
|
+
username: username,
|
50
|
+
path: '/' + path,
|
51
|
+
data: {
|
52
|
+
value: value
|
53
|
+
},
|
54
|
+
cluster: cluster
|
44
55
|
});
|
45
56
|
},
|
46
|
-
remove: function remove(username, path) {
|
47
|
-
return api(
|
57
|
+
remove: function remove(username, path, cluster) {
|
58
|
+
return api({
|
59
|
+
method: 'delete',
|
60
|
+
username: username,
|
61
|
+
path: '/' + path,
|
62
|
+
cluster: cluster
|
63
|
+
});
|
48
64
|
},
|
49
|
-
getAll: function getAll(username) {
|
50
|
-
return api(
|
65
|
+
getAll: function getAll(username, cluster) {
|
66
|
+
return api({
|
67
|
+
method: 'get',
|
68
|
+
username: username,
|
69
|
+
path: '/',
|
70
|
+
cluster: cluster
|
71
|
+
});
|
51
72
|
},
|
52
|
-
create: function create(username) {
|
53
|
-
return api(
|
73
|
+
create: function create(username, cluster) {
|
74
|
+
return api({
|
75
|
+
method: 'post',
|
76
|
+
username: username,
|
77
|
+
path: '/',
|
78
|
+
cluster: cluster
|
79
|
+
});
|
54
80
|
}
|
55
81
|
};
|
56
82
|
export default provider;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["axios","yt","api","method","
|
1
|
+
{"version":3,"names":["axios","yt","api","options","request","method","url","concat","cluster","username","path","headers","data","JSON","stringify","then","response","error","Promise","reject","code","message","codes","NODE_DOES_NOT_EXIST","undefined","provider","get","set","value","remove","getAll","create"],"sources":["settings-remote-provider.ts"],"sourcesContent":["import axios from 'axios';\n\n// @ts-expect-error\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport {PromiseOrValue} from '../../../@types/types';\n\ntype Method = 'get' | 'put' | 'post' | 'delete';\n\ninterface ApiOptions {\n method: Method;\n username: string;\n path: string;\n data?: unknown;\n cluster: string;\n}\n\nfunction api<T>(options: ApiOptions) {\n return axios\n .request<T | undefined>({\n method: options.method,\n url: `/api/settings/${options.cluster}/${options.username}${options.path}`,\n headers: {\n 'content-type': 'application/json',\n },\n data: JSON.stringify(options.data),\n })\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n if (!error.response) {\n return Promise.reject({\n code: 0,\n message: 'Network error',\n });\n }\n\n const {data} = error.response;\n if (data.code === yt.codes.NODE_DOES_NOT_EXIST) {\n return undefined;\n }\n\n return Promise.reject(data);\n });\n}\n\nconst provider: SettingsProvider = {\n get<T>(username: string, path: string, cluster: string) {\n return api<T>({method: 'get', username, path: '/' + path, cluster});\n },\n set<T>(username: string, path: string, value: T, cluster: string) {\n if (value === undefined) {\n /**\n * data-ui/core uses body-parser which interprets empty body of request as empty object {},\n * i.e. setItem from src/server/controllers/settings.js will receive req.body === {} if value === undefined,\n * so we have to remove it explicitly\n */\n return provider.remove(username, path, cluster);\n }\n return api({method: 'put', username, path: '/' + path, data: {value}, cluster});\n },\n remove(username: string, path: string, cluster: string) {\n return api({method: 'delete', username, path: '/' + path, cluster});\n },\n getAll<T>(username: string, cluster: string) {\n return api<T>({method: 'get', username, path: '/', cluster});\n },\n create(username: string, cluster: string) {\n return api({method: 'post', username, path: '/', cluster});\n },\n};\n\nexport interface SettingsProvider {\n get<T>(username: string, path: string, cluster: string): Promise<T | undefined>;\n set<T>(username: string, path: string, value: T, cluster: string): Promise<void>;\n remove(username: string, path: string, cluster: string): Promise<void>;\n getAll<Data extends object>(\n username: string,\n cluster: string,\n ): PromiseOrValue<Data | undefined>;\n create(username: string, cluster: string): Promise<void>;\n}\n\nexport default provider;\n"],"mappings":"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"}
|
@@ -48,7 +48,7 @@ declare const _default: import("react-redux").ConnectedComponent<typeof Elements
|
|
48
48
|
onMouseMove: PropTypes.Requireable<(...args: any[]) => any>;
|
49
49
|
rowClassName: PropTypes.Requireable<(...args: any[]) => any>;
|
50
50
|
colSpan: PropTypes.Requireable<(...args: any[]) => any>;
|
51
|
-
}>, "columns" | "
|
51
|
+
}>, "columns" | "sortState" | "isLoading" | "onMouseMove" | "colSpan" | "rowClassName" | "onSort" | "selectedIndex" | "onItemClick" | "itemHeight" | "css" | "getItemLink" | "cssTableMods" | "onItemSelect" | "itemMods" | "onItemHover" | "tableId" | "toggleColumnSortOrder" | "computeKey" | "columnsMode" | "onItemToggleState" | "sortInfo" | "emptyDataDescription"> & {
|
52
52
|
theme?: string | null | undefined;
|
53
53
|
body?: any;
|
54
54
|
templates?: NonNullable<PropTypes.InferProps<{
|