@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
package/README.md
CHANGED
@@ -21,8 +21,8 @@ To run the development environment you need to prepare and run nginx:
|
|
21
21
|
1. Install nginx
|
22
22
|
2. Copy file `deploy/nginx/yt.development.conf.example` to `/etc/nginx/sites-enabled/yt.development.conf`
|
23
23
|
3. Modify `/etc/nginx/sites-enabled/yt.development.conf`
|
24
|
-
|
25
|
-
|
24
|
+
- change `server_name`
|
25
|
+
- replace all `/path/to/the/repo` to correct path
|
26
26
|
4. `sudo systemctl restart nginx`
|
27
27
|
|
28
28
|
Install required dependencies:
|
@@ -40,22 +40,17 @@ $ npm run dev:localmode
|
|
40
40
|
Another way is to provide `clusters-config.json` and run the command like:
|
41
41
|
|
42
42
|
```bash
|
43
|
-
|
44
|
-
$ YT_AUTH_CLUSTER_ID=my-cluster npm run dev:app
|
43
|
+
$ npm run dev:app
|
45
44
|
```
|
46
45
|
|
47
46
|
### Environment variables
|
48
47
|
|
49
|
-
- `
|
50
|
-
- `YT_AUTH_ALLOW_INSECURE` - if defined allows insecure (over http) authentication, do not use it for production _(the variable is ignored if `YT_AUTH_CLUSTER_ID` is not defined)_
|
51
|
-
- `YT_USER_SETTINGS_PATH` - path to map-node with files of user-settings, if not defined '//tmp' is used _(the variable is ignored if `YT_AUTH_CLUSTER_ID` is not defined)_
|
52
|
-
- `YT_USER_COLUMN_PRESETS_PATH` - path to dynamic table with user column presets _(the variable is ignored if `YT_AUTH_CLUSTER_ID` is not defined)_. The table should have two columns: **"name"** _(string, required, sort_order: ascheding)_, **"columns_json"** _(string)_.
|
48
|
+
- `YT_AUTH_ALLOW_INSECURE` - if defined allows insecure (over http) authentication, do not use it for production
|
53
49
|
|
54
50
|
### Feature flags
|
55
51
|
|
56
|
-
|
57
|
-
But some cases require ability to turn on/off a feature manually on a cluster. Such feature flags
|
58
|
-
are placed placed in:
|
52
|
+
There is yt-api command get_supported_feature and it is a good place to describe some features.
|
53
|
+
But some cases require ability to turn on/off a feature manually on a cluster. Such feature flags are placed placed in:
|
59
54
|
|
60
55
|
- `//sys/@ui_config` (values affects all users)
|
61
56
|
- `//sys/@ui_config_dev_overrides` (values affects only developers)
|
@@ -10,6 +10,11 @@ import {UISettings} from '../../shared/ui-settings';
|
|
10
10
|
import {Settings} from '../shared/constants/settings-types';
|
11
11
|
|
12
12
|
export interface YTCoreConfig {
|
13
|
+
/**
|
14
|
+
* Enables YT-password authentication when defined
|
15
|
+
*/
|
16
|
+
allowPasswordAuth: boolean;
|
17
|
+
|
13
18
|
/**
|
14
19
|
* Path to the file with OAuth-token of special-user ("the OAuthRobot" below) in format: {"oauthToken": "******"}
|
15
20
|
* The OAuth-token is used for some service requests, see usages of getRobotYTApiSetup.
|
@@ -52,7 +57,7 @@ export interface YTCoreConfig {
|
|
52
57
|
* The OAuthRobot should have read/write access to mapNodePath
|
53
58
|
*/
|
54
59
|
userSettingsConfig?: {
|
55
|
-
cluster
|
60
|
+
cluster?: string;
|
56
61
|
// path to a map node with user-settings files
|
57
62
|
mapNodePath: string;
|
58
63
|
};
|
@@ -65,15 +70,10 @@ export interface YTCoreConfig {
|
|
65
70
|
* The OAuthRobot should have read/write access to the table.
|
66
71
|
*/
|
67
72
|
userColumnPresets?: {
|
68
|
-
cluster
|
73
|
+
cluster?: string;
|
69
74
|
dynamicTablePath: string;
|
70
75
|
};
|
71
76
|
|
72
|
-
/**
|
73
|
-
* Enables YT-password authentication when defined
|
74
|
-
*/
|
75
|
-
ytAuthCluster?: string;
|
76
|
-
|
77
77
|
/**
|
78
78
|
* OpenID Connect configuration
|
79
79
|
*/
|
@@ -8,8 +8,7 @@ const oauth_1 = require("./oauth");
|
|
8
8
|
async function getLayoutConfig(req, params) {
|
9
9
|
var _a;
|
10
10
|
const { login, ytConfig, settings } = params;
|
11
|
-
const { ytApiUseCORS, uiSettings, metrikaCounter,
|
12
|
-
.config;
|
11
|
+
const { ytApiUseCORS, uiSettings, metrikaCounter, allowPasswordAuth, odinBaseUrl, userSettingsConfig, } = req.ctx.config;
|
13
12
|
const YT = ytConfig;
|
14
13
|
const uiVersion = (0, utils_1.getInterfaceVersion)();
|
15
14
|
const parameters = {
|
@@ -37,11 +36,12 @@ async function getLayoutConfig(req, params) {
|
|
37
36
|
`window.YT.environment = window.YT.environment || (${isProduction} ? 'production' : 'development');`,
|
38
37
|
],
|
39
38
|
data: {
|
39
|
+
userSettingsCluster: userSettingsConfig === null || userSettingsConfig === void 0 ? void 0 : userSettingsConfig.cluster,
|
40
40
|
settings,
|
41
41
|
ytApiUseCORS,
|
42
42
|
uiSettings,
|
43
43
|
metrikaCounterId: (_a = metrikaCounter === null || metrikaCounter === void 0 ? void 0 : metrikaCounter[0]) === null || _a === void 0 ? void 0 : _a.id,
|
44
|
-
allowLoginDialog: Boolean(
|
44
|
+
allowLoginDialog: Boolean(allowPasswordAuth),
|
45
45
|
allowOAuth: (0, oauth_1.isOAuthAllowed)(req),
|
46
46
|
oauthButtonLabel: (0, oauth_1.isOAuthAllowed)(req) ? (0, oauth_1.getOAuthSettings)(req).buttonLabel : undefined,
|
47
47
|
allowUserColumnPresets: (0, table_column_preset_1.isUserColumnPresetsEnabled)(req),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_tableColumnPreset","require","_utils","_authorization","_oauth","_interopRequireDefault","obj","__esModule","default","getLayoutConfig","_x","_x2","_getLayoutConfig","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","params","_metrikaCounter$","login","ytConfig","settings","_ref","ytApiUseCORS","uiSettings","metrikaCounter","
|
1
|
+
{"version":3,"names":["_tableColumnPreset","require","_utils","_authorization","_oauth","_interopRequireDefault","obj","__esModule","default","getLayoutConfig","_x","_x2","_getLayoutConfig","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","params","_metrikaCounter$","login","ytConfig","settings","_ref","ytApiUseCORS","uiSettings","metrikaCounter","allowPasswordAuth","odinBaseUrl","userSettingsConfig","YT","uiVersion","parameters","isProduction","res","wrap","_callee$","_context","prev","next","ctx","config","getInterfaceVersion","version","authWay","getAuthWay","isProductionEnv","bodyContent","root","title","lang","meta","name","content","inlineScripts","concat","JSON","stringify","data","userSettingsCluster","cluster","metrikaCounterId","id","allowLoginDialog","Boolean","allowOAuth","isOAuthAllowed","oauthButtonLabel","getOAuthSettings","buttonLabel","undefined","allowUserColumnPresets","isUserColumnPresetsEnabled","odinPageEnabled","pluginsOptions","yandexMetrika","counter","layout","abrupt","stop"],"sources":["layout-config.ts"],"sourcesContent":["import type {Request} from 'express';\nimport {YTCoreConfig} from '../../@types/core';\nimport {ConfigData, YTConfig} from '../../shared/yt-types';\nimport {AppLayoutConfig} from '../render-layout';\nimport {isUserColumnPresetsEnabled} from '../controllers/table-column-preset';\nimport {getInterfaceVersion, isProductionEnv} from '../utils';\nimport {getAuthWay} from '../utils/authorization';\nimport {getOAuthSettings, isOAuthAllowed} from './oauth';\n\ninterface Params {\n login?: string;\n uid?: string;\n cluster: string | undefined;\n settings: ConfigData['settings'];\n ytConfig: Partial<YTConfig>;\n}\n\nexport async function getLayoutConfig(req: Request, params: Params): Promise<AppLayoutConfig> {\n const {login, ytConfig, settings} = params;\n const {\n ytApiUseCORS,\n uiSettings,\n metrikaCounter,\n allowPasswordAuth,\n odinBaseUrl,\n userSettingsConfig,\n } = req.ctx.config as YTCoreConfig;\n const YT = ytConfig;\n const uiVersion = getInterfaceVersion();\n\n const parameters = {\n interface: {\n version: uiVersion,\n },\n login,\n authWay: getAuthWay(req),\n };\n\n const isProduction = isProductionEnv();\n\n const res: AppLayoutConfig = {\n bodyContent: {root: ''},\n title: 'YT',\n lang: 'en',\n meta: [\n {\n name: 'viewport',\n content: 'width=device-width, initial-scale=1.0',\n },\n ],\n inlineScripts: [\n `window.YT = Object.assign(window.YT || {}, ${JSON.stringify(YT)}, ${JSON.stringify({\n parameters,\n })});`,\n `window.YT.environment = window.YT.environment || (${isProduction} ? 'production' : 'development');`,\n ],\n data: {\n userSettingsCluster: userSettingsConfig?.cluster,\n settings,\n ytApiUseCORS,\n uiSettings,\n metrikaCounterId: metrikaCounter?.[0]?.id,\n allowLoginDialog: Boolean(allowPasswordAuth),\n allowOAuth: isOAuthAllowed(req),\n oauthButtonLabel: isOAuthAllowed(req) ? getOAuthSettings(req).buttonLabel : undefined,\n allowUserColumnPresets: isUserColumnPresetsEnabled(req),\n odinPageEnabled: Boolean(odinBaseUrl),\n },\n pluginsOptions: {\n yandexMetrika: {\n counter: metrikaCounter,\n },\n layout: {\n name: 'main',\n },\n },\n };\n return res;\n}\n"],"mappings":"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"}
|
@@ -14,11 +14,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.getUserYTApiSetup = exports.getRobotYTApiSetup = exports.getYTApiClusterSetup = void 0;
|
15
15
|
const utils_1 = require("../components/utils");
|
16
16
|
const ServerFactory_1 = require("../ServerFactory");
|
17
|
-
function getRobotOAuthToken() {
|
17
|
+
function getRobotOAuthToken(cluster) {
|
18
|
+
var _a, _b, _c;
|
18
19
|
const { ytInterfaceSecret } = (0, ServerFactory_1.getApp)().config;
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
let oauthToken = '';
|
21
|
+
if (ytInterfaceSecret) {
|
22
|
+
oauthToken =
|
23
|
+
// eslint-disable-next-line security/detect-non-literal-require
|
24
|
+
((_b = (_a = require(ytInterfaceSecret)) === null || _a === void 0 ? void 0 : _a[cluster]) === null || _b === void 0 ? void 0 : _b.oauthToken) ||
|
25
|
+
(
|
26
|
+
// eslint-disable-next-line security/detect-non-literal-require
|
27
|
+
(_c = require(ytInterfaceSecret)) === null || _c === void 0 ? void 0 : _c.oauthToken); // Backward compatibility
|
28
|
+
}
|
29
|
+
return oauthToken;
|
22
30
|
}
|
23
31
|
function getClusterSetup(clusterConfig) {
|
24
32
|
const { proxy } = clusterConfig;
|
@@ -45,7 +53,7 @@ function getYTApiClusterSetup(cluster) {
|
|
45
53
|
}
|
46
54
|
exports.getYTApiClusterSetup = getYTApiClusterSetup;
|
47
55
|
function getRobotYTApiSetup(cluster) {
|
48
|
-
const oauthToken = getRobotOAuthToken();
|
56
|
+
const oauthToken = getRobotOAuthToken(cluster);
|
49
57
|
const config = getYTApiClusterSetup(cluster);
|
50
58
|
const { setup } = config, rest = __rest(config, ["setup"]);
|
51
59
|
const authHeaders = setup.authentication && setup.authentication !== 'none'
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_utils","require","_ServerFactory","_interopRequireDefault","obj","__esModule","default","getRobotOAuthToken","_ref","getApp","config","ytInterfaceSecret","
|
1
|
+
{"version":3,"names":["_utils","require","_ServerFactory","_interopRequireDefault","obj","__esModule","default","getRobotOAuthToken","cluster","_ref","getApp","config","ytInterfaceSecret","oauthToken","_require","_require2","getClusterSetup","clusterConfig","proxy","secure","Boolean","setup","id","authentication","useEncodedParameters","useHeavyProxy","timeout","proxyBaseUrl","concat","getYTApiClusterSetup","_getClusterConfig","getClusterConfig","isLocalCluster","ytConfig","Error","_objectSpread","getRobotYTApiSetup","rest","_objectWithoutProperties","_excluded","authHeaders","Authorization","type","token","getUserYTApiSetup","req","_getYTApiClusterSetup","_excluded2","yt","ytApiAuthHeaders","Object","assign","requestHeaders"],"sources":["requestsSetup.ts"],"sourcesContent":["import type {Request} from 'express';\n\nimport {YTCoreConfig} from '../../@types/core';\nimport {ClusterConfig} from '../../shared/yt-types';\nimport {getClusterConfig} from '../components/utils';\nimport {getApp} from '../ServerFactory';\n\nfunction getRobotOAuthToken(cluster: string) {\n const {ytInterfaceSecret} = getApp().config as YTCoreConfig;\n\n let oauthToken = '';\n\n if (ytInterfaceSecret) {\n oauthToken =\n // eslint-disable-next-line security/detect-non-literal-require\n require(ytInterfaceSecret)?.[cluster]?.oauthToken ||\n // eslint-disable-next-line security/detect-non-literal-require\n require(ytInterfaceSecret)?.oauthToken; // Backward compatibility\n }\n\n return oauthToken;\n}\n\nexport interface YTApiSetup {\n id: string;\n proxy: string;\n authentication: 'none' | 'basic' | 'domain' | {type: 'oauth'; token: string};\n secure: boolean;\n useEncodedParameters: boolean;\n useHeavyProxy: boolean;\n timeout: number;\n}\n\nfunction getClusterSetup(clusterConfig: ClusterConfig): {\n setup: YTApiSetup;\n proxyBaseUrl: string;\n} {\n const {proxy} = clusterConfig;\n const secure = Boolean(clusterConfig?.secure);\n\n return {\n setup: {\n id: clusterConfig?.id,\n proxy,\n authentication: clusterConfig?.authentication || 'none',\n secure,\n useEncodedParameters: true,\n useHeavyProxy: false,\n timeout: 5000,\n },\n proxyBaseUrl: secure ? `https://${proxy}` : `http://${proxy}`,\n };\n}\n\nexport type YTApiClusterSetup = ReturnType<typeof getClusterSetup>;\n\nexport function getYTApiClusterSetup(\n cluster: string,\n): YTApiClusterSetup & {isLocalCluster?: boolean} {\n const {\n clusterConfig,\n ytConfig: {isLocalCluster},\n } = getClusterConfig(cluster);\n if (!clusterConfig) {\n throw new Error(`Cluster '${cluster}' is not found`);\n }\n\n return {isLocalCluster, ...getClusterSetup(clusterConfig)};\n}\n\nexport function getRobotYTApiSetup(cluster: string): YTApiUserSetup {\n const oauthToken = getRobotOAuthToken(cluster);\n const config = getYTApiClusterSetup(cluster);\n\n const {setup, ...rest} = config;\n\n const authHeaders: Record<string, string> =\n setup.authentication && setup.authentication !== 'none'\n ? {\n Authorization: `OAuth ${oauthToken}`,\n }\n : {};\n\n return {\n setup: {\n ...setup,\n authentication:\n setup.authentication && setup.authentication !== 'none'\n ? {\n type: 'oauth',\n token: oauthToken!,\n }\n : 'none',\n },\n authHeaders,\n ...rest,\n };\n}\n\n/**\n * @param cluster\n * @param req\n * @returns undefined when cluster is not found\n */\nexport function getUserYTApiSetup(cluster: string, req: Request): YTApiUserSetup {\n const {setup, ...rest} = getYTApiClusterSetup(cluster);\n const {authentication} = setup;\n\n const authHeaders =\n authentication && authentication !== 'none' ? req.yt.ytApiAuthHeaders || {} : {};\n\n Object.assign(setup, {requestHeaders: {...authHeaders}});\n\n return {\n ...rest,\n setup,\n authHeaders,\n };\n}\n\nexport type YTApiUserSetup = ReturnType<typeof getYTApiClusterSetup> & {\n authHeaders: Record<string, string>;\n};\n"],"mappings":"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"}
|
@@ -1,18 +1,23 @@
|
|
1
1
|
import { AppContext } from '@gravity-ui/nodekit';
|
2
|
+
export declare function getSettingsConfig(cluster: string): {
|
3
|
+
cluster: string;
|
4
|
+
mapNodePath?: string;
|
5
|
+
};
|
2
6
|
export declare function isRemoteSettingsConfigured(): boolean;
|
3
7
|
interface Params {
|
4
8
|
ctx: AppContext;
|
5
9
|
username: string;
|
10
|
+
cluster: string;
|
6
11
|
}
|
7
|
-
export declare function create({ ctx, username }: Params): any;
|
8
|
-
export declare function get({ ctx, username }: Params): any;
|
12
|
+
export declare function create({ ctx, username, cluster }: Params): any;
|
13
|
+
export declare function get({ ctx, username, cluster }: Params): any;
|
9
14
|
interface GetParams extends Params {
|
10
15
|
path: string;
|
11
16
|
}
|
12
|
-
export declare function getItem({ ctx, username, path }: GetParams): any;
|
17
|
+
export declare function getItem({ ctx, username, path, cluster }: GetParams): any;
|
13
18
|
interface SetParams extends GetParams {
|
14
19
|
value: any;
|
15
20
|
}
|
16
|
-
export declare function setItem({ ctx, username, path, value }: SetParams): any;
|
17
|
-
export declare function deleteItem({ ctx, username, path }: GetParams): any;
|
21
|
+
export declare function setItem({ ctx, username, path, value, cluster }: SetParams): any;
|
22
|
+
export declare function deleteItem({ ctx, username, path, cluster }: GetParams): any;
|
18
23
|
export {};
|
@@ -1,33 +1,34 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.deleteItem = exports.setItem = exports.getItem = exports.get = exports.create = exports.isRemoteSettingsConfigured = void 0;
|
3
|
+
exports.deleteItem = exports.setItem = exports.getItem = exports.get = exports.create = exports.isRemoteSettingsConfigured = exports.getSettingsConfig = void 0;
|
4
4
|
const ServerFactory_1 = require("../ServerFactory");
|
5
5
|
const requestsSetup_1 = require("./requestsSetup");
|
6
6
|
const yt = require('@ytsaurus/javascript-wrapper')();
|
7
7
|
function makeConfigError() {
|
8
8
|
return new Error('Remote user settings are not configured. Please provide userSettingsConfig.');
|
9
9
|
}
|
10
|
-
function getSettingsConfig() {
|
10
|
+
function getSettingsConfig(cluster) {
|
11
11
|
const { userSettingsConfig } = (0, ServerFactory_1.getApp)().config;
|
12
|
-
return
|
12
|
+
return Object.assign({ cluster }, userSettingsConfig);
|
13
13
|
}
|
14
|
-
|
15
|
-
|
14
|
+
exports.getSettingsConfig = getSettingsConfig;
|
15
|
+
function getSettingsSetup(cluster) {
|
16
|
+
return (0, requestsSetup_1.getRobotYTApiSetup)(getSettingsConfig(cluster).cluster).setup;
|
16
17
|
}
|
17
18
|
function isRemoteSettingsConfigured() {
|
18
19
|
const { userSettingsConfig } = (0, ServerFactory_1.getApp)().config;
|
19
20
|
return Boolean(userSettingsConfig);
|
20
21
|
}
|
21
22
|
exports.isRemoteSettingsConfigured = isRemoteSettingsConfigured;
|
22
|
-
function create({ ctx, username }) {
|
23
|
+
function create({ ctx, username, cluster }) {
|
23
24
|
ctx.log('settings.create', { username });
|
24
25
|
if (!isRemoteSettingsConfigured()) {
|
25
26
|
return Promise.reject(makeConfigError());
|
26
27
|
}
|
27
28
|
return yt.v3.create({
|
28
|
-
setup: getSettingsSetup(),
|
29
|
+
setup: getSettingsSetup(cluster),
|
29
30
|
parameters: {
|
30
|
-
path: getSettingsConfig().mapNodePath + '/' + username,
|
31
|
+
path: getSettingsConfig(cluster).mapNodePath + '/' + username,
|
31
32
|
type: 'document',
|
32
33
|
ignore_existing: true,
|
33
34
|
attributes: {
|
@@ -37,15 +38,15 @@ function create({ ctx, username }) {
|
|
37
38
|
});
|
38
39
|
}
|
39
40
|
exports.create = create;
|
40
|
-
function get({ ctx, username }) {
|
41
|
-
ctx.log('settings.get', { username });
|
41
|
+
function get({ ctx, username, cluster }) {
|
42
|
+
ctx.log('settings.get', { username, cluster });
|
42
43
|
if (!isRemoteSettingsConfigured()) {
|
43
44
|
return Promise.reject(makeConfigError());
|
44
45
|
}
|
45
46
|
return yt.v3.get({
|
46
|
-
setup: getSettingsSetup(),
|
47
|
+
setup: getSettingsSetup(cluster),
|
47
48
|
parameters: {
|
48
|
-
path: getSettingsConfig().mapNodePath + '/' + username,
|
49
|
+
path: getSettingsConfig(cluster).mapNodePath + '/' + username,
|
49
50
|
output_format: {
|
50
51
|
$value: 'json',
|
51
52
|
$attributes: {
|
@@ -56,15 +57,15 @@ function get({ ctx, username }) {
|
|
56
57
|
});
|
57
58
|
}
|
58
59
|
exports.get = get;
|
59
|
-
function getItem({ ctx, username, path }) {
|
60
|
+
function getItem({ ctx, username, path, cluster }) {
|
60
61
|
ctx.log('settings.getItem', { username, path });
|
61
62
|
if (!isRemoteSettingsConfigured()) {
|
62
63
|
return Promise.reject(makeConfigError());
|
63
64
|
}
|
64
65
|
return yt.v3.get({
|
65
|
-
setup: getSettingsSetup(),
|
66
|
+
setup: getSettingsSetup(cluster),
|
66
67
|
parameters: {
|
67
|
-
path: getSettingsConfig().mapNodePath + '/' + username + '/' + path,
|
68
|
+
path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path,
|
68
69
|
output_format: {
|
69
70
|
$value: 'json',
|
70
71
|
$attributes: {
|
@@ -75,15 +76,15 @@ function getItem({ ctx, username, path }) {
|
|
75
76
|
});
|
76
77
|
}
|
77
78
|
exports.getItem = getItem;
|
78
|
-
function setItem({ ctx, username, path, value }) {
|
79
|
-
ctx.log('settings.setItem', { username, path, value });
|
79
|
+
function setItem({ ctx, username, path, value, cluster }) {
|
80
|
+
ctx.log('settings.setItem', { username, path, value, cluster });
|
80
81
|
if (!isRemoteSettingsConfigured()) {
|
81
82
|
return Promise.reject(makeConfigError());
|
82
83
|
}
|
83
84
|
return yt.v3.set({
|
84
|
-
setup: getSettingsSetup(),
|
85
|
+
setup: getSettingsSetup(cluster),
|
85
86
|
parameters: {
|
86
|
-
path: getSettingsConfig().mapNodePath + '/' + username + '/' + path,
|
87
|
+
path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path,
|
87
88
|
input_format: {
|
88
89
|
$value: 'json',
|
89
90
|
$attributes: {
|
@@ -95,15 +96,15 @@ function setItem({ ctx, username, path, value }) {
|
|
95
96
|
});
|
96
97
|
}
|
97
98
|
exports.setItem = setItem;
|
98
|
-
function deleteItem({ ctx, username, path }) {
|
99
|
-
ctx.log('settings.deleteItem', { username, path });
|
99
|
+
function deleteItem({ ctx, username, path, cluster }) {
|
100
|
+
ctx.log('settings.deleteItem', { username, path, cluster });
|
100
101
|
if (!isRemoteSettingsConfigured()) {
|
101
102
|
return Promise.reject(makeConfigError());
|
102
103
|
}
|
103
104
|
return yt.v3.remove({
|
104
|
-
setup: getSettingsSetup(),
|
105
|
+
setup: getSettingsSetup(cluster),
|
105
106
|
parameters: {
|
106
|
-
path: getSettingsConfig().mapNodePath + '/' + username + '/' + path,
|
107
|
+
path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path,
|
107
108
|
},
|
108
109
|
});
|
109
110
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_ServerFactory","require","_requestsSetup","yt","makeConfigError","Error","getSettingsConfig","userSettingsConfig","getApp","config","
|
1
|
+
{"version":3,"names":["_ServerFactory","require","_requestsSetup","_interopRequireDefault","obj","__esModule","default","yt","makeConfigError","Error","getSettingsConfig","cluster","userSettingsConfig","getApp","config","_objectSpread","getSettingsSetup","getRobotYTApiSetup","setup","isRemoteSettingsConfigured","Boolean","create","_ref","ctx","username","log","Promise","reject","v3","parameters","path","mapNodePath","type","ignore_existing","attributes","value","get","_ref2","output_format","$value","$attributes","encode_utf8","getItem","_ref3","setItem","_ref4","set","input_format","data","deleteItem","_ref5","remove"],"sources":["settings.ts"],"sourcesContent":["import {AppContext} from '@gravity-ui/nodekit';\nimport {getApp} from '../ServerFactory';\nimport {getRobotYTApiSetup} from './requestsSetup';\n\nconst yt = require('@ytsaurus/javascript-wrapper')();\n\nfunction makeConfigError() {\n return new Error('Remote user settings are not configured. Please provide userSettingsConfig.');\n}\n\nexport function getSettingsConfig(cluster: string): {\n cluster: string;\n mapNodePath?: string;\n} {\n const {userSettingsConfig} = getApp().config;\n\n return {\n cluster,\n ...userSettingsConfig,\n };\n}\n\nfunction getSettingsSetup(cluster: string) {\n return getRobotYTApiSetup(getSettingsConfig(cluster).cluster).setup;\n}\n\nexport function isRemoteSettingsConfigured() {\n const {userSettingsConfig} = getApp().config;\n return Boolean(userSettingsConfig);\n}\n\ninterface Params {\n ctx: AppContext;\n username: string;\n cluster: string;\n}\n\nexport function create({ctx, username, cluster}: Params) {\n ctx.log('settings.create', {username});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.create({\n setup: getSettingsSetup(cluster),\n parameters: {\n path: getSettingsConfig(cluster).mapNodePath + '/' + username,\n type: 'document',\n ignore_existing: true, // No error if exists\n attributes: {\n value: {},\n },\n },\n });\n}\n\nexport function get({ctx, username, cluster}: Params) {\n ctx.log('settings.get', {username, cluster});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.get({\n setup: getSettingsSetup(cluster),\n parameters: {\n path: getSettingsConfig(cluster).mapNodePath + '/' + username,\n output_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n });\n}\n\ninterface GetParams extends Params {\n path: string;\n}\nexport function getItem({ctx, username, path, cluster}: GetParams) {\n ctx.log('settings.getItem', {username, path});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.get({\n setup: getSettingsSetup(cluster),\n parameters: {\n path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path,\n output_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n });\n}\n\ninterface SetParams extends GetParams {\n value: any;\n}\nexport function setItem({ctx, username, path, value, cluster}: SetParams) {\n ctx.log('settings.setItem', {username, path, value, cluster});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.set({\n setup: getSettingsSetup(cluster),\n parameters: {\n path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path,\n input_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n data: value,\n });\n}\nexport function deleteItem({ctx, username, path, cluster}: GetParams) {\n ctx.log('settings.deleteItem', {username, path, cluster});\n if (!isRemoteSettingsConfigured()) {\n return Promise.reject(makeConfigError());\n }\n\n return yt.v3.remove({\n setup: getSettingsSetup(cluster),\n parameters: {\n path: getSettingsConfig(cluster).mapNodePath + '/' + username + '/' + path,\n },\n });\n}\n"],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
interface PresetConfig {
|
2
|
-
cluster
|
2
|
+
cluster?: string;
|
3
3
|
dynamicTablePath: string;
|
4
4
|
}
|
5
|
-
export declare function getColumnPreset({
|
6
|
-
export declare function saveColumnPreset({
|
5
|
+
export declare function getColumnPreset({ dynamicTablePath, cluster }: PresetConfig, hash: string, ytAuthCluster: string): Promise<Array<string> | undefined>;
|
6
|
+
export declare function saveColumnPreset({ dynamicTablePath, cluster }: PresetConfig, columns: unknown | Array<string>, ytAuthCluster: string): Promise<string>;
|
7
7
|
export {};
|
@@ -11,11 +11,11 @@ const javascript_wrapper_1 = __importDefault(require("@ytsaurus/javascript-wrapp
|
|
11
11
|
const requestsSetup_1 = require("./requestsSetup");
|
12
12
|
const yt = (0, javascript_wrapper_1.default)();
|
13
13
|
const SHA1_REGEXP = /^[0-9a-f]{40}$/;
|
14
|
-
async function getColumnPreset({
|
14
|
+
async function getColumnPreset({ dynamicTablePath, cluster }, hash, ytAuthCluster) {
|
15
15
|
if (!SHA1_REGEXP.test(hash)) {
|
16
16
|
throw new Error('The hash parameter should be defined as a valid sha1-hash string');
|
17
17
|
}
|
18
|
-
const { setup: setupConfig } = (0, requestsSetup_1.getRobotYTApiSetup)(cluster);
|
18
|
+
const { setup: setupConfig } = (0, requestsSetup_1.getRobotYTApiSetup)(cluster || ytAuthCluster);
|
19
19
|
const query = `* FROM [${dynamicTablePath}] WHERE hash="${hash}" LIMIT 1`;
|
20
20
|
const result = await yt.v3.selectRows({
|
21
21
|
setup: setupConfig,
|
@@ -46,11 +46,11 @@ async function getColumnPreset({ cluster, dynamicTablePath }, hash) {
|
|
46
46
|
return columns;
|
47
47
|
}
|
48
48
|
exports.getColumnPreset = getColumnPreset;
|
49
|
-
async function saveColumnPreset({
|
49
|
+
async function saveColumnPreset({ dynamicTablePath, cluster }, columns, ytAuthCluster) {
|
50
50
|
if (!Array.isArray(columns) || lodash_1.default.some(columns, (i) => 'string' !== typeof i)) {
|
51
51
|
throw new Error('Request body should contain JSON-array of strings');
|
52
52
|
}
|
53
|
-
const { setup: setupConfig } = (0, requestsSetup_1.getRobotYTApiSetup)(cluster);
|
53
|
+
const { setup: setupConfig } = (0, requestsSetup_1.getRobotYTApiSetup)(cluster || ytAuthCluster);
|
54
54
|
const hash = object_hash_1.default.sha1(columns);
|
55
55
|
await yt.v3.insertRows({
|
56
56
|
setup: setupConfig,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_objectHash","_interopRequireDefault","require","_javascriptWrapper","_requestsSetup","obj","__esModule","default","yt","ytLib","SHA1_REGEXP","getColumnPreset","_x","_x2","_getColumnPreset","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","hash","
|
1
|
+
{"version":3,"names":["_objectHash","_interopRequireDefault","require","_javascriptWrapper","_requestsSetup","obj","__esModule","default","yt","ytLib","SHA1_REGEXP","getColumnPreset","_x","_x2","_x3","_getColumnPreset","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","hash","ytAuthCluster","dynamicTablePath","cluster","_getRobotYTApiSetup","setupConfig","query","result","columns","wrap","_callee$","_context","prev","next","test","Error","getRobotYTApiSetup","setup","concat","v3","selectRows","parameters","output_format","$value","$attributes","field_weight_limit","encode_utf8","sent","abrupt","undefined","JSON","parse","columns_json","t0","Array","isArray","_some","i","stop","saveColumnPreset","_x4","_x5","_x6","_saveColumnPreset","_callee2","_ref2","_getRobotYTApiSetup2","_callee2$","_context2","objectHash","sha1","insertRows","path","input_format","data","stringify"],"sources":["table.ts"],"sourcesContent":["import _ from 'lodash';\nimport objectHash from 'object-hash';\n// @ts-ignore-next-line\nimport ytLib from '@ytsaurus/javascript-wrapper';\nimport {getRobotYTApiSetup} from './requestsSetup';\n\nconst yt = ytLib();\n\nconst SHA1_REGEXP = /^[0-9a-f]{40}$/;\n\ninterface PresetConfig {\n cluster?: string;\n dynamicTablePath: string;\n}\n\nexport async function getColumnPreset(\n {dynamicTablePath, cluster}: PresetConfig,\n hash: string,\n ytAuthCluster: string,\n): Promise<Array<string> | undefined> {\n if (!SHA1_REGEXP.test(hash)) {\n throw new Error('The hash parameter should be defined as a valid sha1-hash string');\n }\n\n const {setup: setupConfig} = getRobotYTApiSetup(cluster || ytAuthCluster);\n\n const query = `* FROM [${dynamicTablePath}] WHERE hash=\"${hash}\" LIMIT 1`;\n const result = await yt.v3.selectRows({\n setup: setupConfig,\n parameters: {\n query,\n output_format: {\n $value: 'json',\n $attributes: {\n field_weight_limit: 100000,\n encode_utf8: 'false',\n },\n },\n },\n });\n\n if (!result) {\n return undefined;\n }\n\n let columns: Array<string> = [];\n try {\n columns = JSON.parse(JSON.parse(result).columns_json);\n } catch (e) {\n throw new Error(`Failed to parse ${hash}-preset`);\n }\n\n if (!Array.isArray(columns) || _.some(columns, (i) => 'string' !== typeof i)) {\n throw new Error(`${hash}-preset is not an array of strings`);\n }\n return columns;\n}\n\nexport async function saveColumnPreset(\n {dynamicTablePath, cluster}: PresetConfig,\n columns: unknown | Array<string>,\n ytAuthCluster: string,\n): Promise<string> {\n if (!Array.isArray(columns) || _.some(columns, (i) => 'string' !== typeof i)) {\n throw new Error('Request body should contain JSON-array of strings');\n }\n\n const {setup: setupConfig} = getRobotYTApiSetup(cluster || ytAuthCluster);\n\n const hash = objectHash.sha1(columns);\n\n await yt.v3.insertRows({\n setup: setupConfig,\n parameters: {\n path: dynamicTablePath,\n input_format: {\n $value: 'json',\n $attributes: {\n encode_utf8: 'false',\n },\n },\n },\n data: [{hash, columns_json: JSON.stringify(columns)}],\n });\n\n return hash;\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAAkD,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAFlD;;AAIA,IAAMG,EAAE,GAAG,IAAAC,0BAAK,EAAC,CAAC;AAElB,IAAMC,WAAW,GAAG,gBAAgB;AAOpC,SAAsBC,eAAeA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,gBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAyCpC,SAAAF,iBAAA;EAAAA,gBAAA,OAAAG,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAzCM,SAAAC,QAAAC,IAAA,EAEHC,IAAY,EACZC,aAAqB;IAAA,IAAAC,gBAAA,EAAAC,OAAA,EAAAC,mBAAA,EAAAC,WAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,OAAA;IAAA,OAAAZ,oBAAA,CAAAa,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAFpBX,gBAAgB,GAAAH,IAAA,CAAhBG,gBAAgB,EAAEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;UAAA,IAIrBhB,WAAW,CAAC2B,IAAI,CAACd,IAAI,CAAC;YAAAW,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,MACjB,IAAIE,KAAK,CAAC,kEAAkE,CAAC;QAAA;UAAAX,mBAAA,GAG1D,IAAAY,iCAAkB,EAACb,OAAO,IAAIF,aAAa,CAAC,EAA3DI,WAAW,GAAAD,mBAAA,CAAlBa,KAAK;UAENX,KAAK,cAAAY,MAAA,CAAchB,gBAAgB,qBAAAgB,MAAA,CAAiBlB,IAAI;UAAAW,QAAA,CAAAE,IAAA;UAAA,OACzC5B,EAAE,CAACkC,EAAE,CAACC,UAAU,CAAC;YAClCH,KAAK,EAAEZ,WAAW;YAClBgB,UAAU,EAAE;cACRf,KAAK,EAALA,KAAK;cACLgB,aAAa,EAAE;gBACXC,MAAM,EAAE,MAAM;gBACdC,WAAW,EAAE;kBACTC,kBAAkB,EAAE,MAAM;kBAC1BC,WAAW,EAAE;gBACjB;cACJ;YACJ;UACJ,CAAC,CAAC;QAAA;UAZInB,MAAM,GAAAI,QAAA,CAAAgB,IAAA;UAAA,IAcPpB,MAAM;YAAAI,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAiB,MAAA,WACAC,SAAS;QAAA;UAGhBrB,OAAsB,GAAG,EAAE;UAAAG,QAAA,CAAAC,IAAA;UAE3BJ,OAAO,GAAGsB,IAAI,CAACC,KAAK,CAACD,IAAI,CAACC,KAAK,CAACxB,MAAM,CAAC,CAACyB,YAAY,CAAC;UAACrB,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAsB,EAAA,GAAAtB,QAAA;UAAA,MAEhD,IAAII,KAAK,oBAAAG,MAAA,CAAoBlB,IAAI,YAAS,CAAC;QAAA;UAAA,MAGjD,CAACkC,KAAK,CAACC,OAAO,CAAC3B,OAAO,CAAC,IAAI,IAAA4B,cAAA,EAAO5B,OAAO,EAAE,UAAC6B,CAAC;YAAA,OAAK,QAAQ,KAAK,OAAOA,CAAC;UAAA,EAAC;YAAA1B,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,MAClE,IAAIE,KAAK,IAAAG,MAAA,CAAIlB,IAAI,uCAAoC,CAAC;QAAA;UAAA,OAAAW,QAAA,CAAAiB,MAAA,WAEzDpB,OAAO;QAAA;QAAA;UAAA,OAAAG,QAAA,CAAA2B,IAAA;MAAA;IAAA,GAAAxC,OAAA;EAAA,CACjB;EAAA,OAAAN,gBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,SAAsB6C,gBAAgBA,CAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAAlD,KAAA,OAAAC,SAAA;AAAA;AA4BrC,SAAAiD,kBAAA;EAAAA,iBAAA,OAAAhD,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CA5BM,SAAA+C,SAAAC,KAAA,EAEHrC,OAAgC,EAChCP,aAAqB;IAAA,IAAAC,gBAAA,EAAAC,OAAA,EAAA2C,oBAAA,EAAAzC,WAAA,EAAAL,IAAA;IAAA,OAAAJ,oBAAA,CAAAa,IAAA,UAAAsC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAApC,IAAA,GAAAoC,SAAA,CAAAnC,IAAA;QAAA;UAFpBX,gBAAgB,GAAA2C,KAAA,CAAhB3C,gBAAgB,EAAEC,OAAO,GAAA0C,KAAA,CAAP1C,OAAO;UAAA,MAItB,CAAC+B,KAAK,CAACC,OAAO,CAAC3B,OAAO,CAAC,IAAI,IAAA4B,cAAA,EAAO5B,OAAO,EAAE,UAAC6B,CAAC;YAAA,OAAK,QAAQ,KAAK,OAAOA,CAAC;UAAA,EAAC;YAAAW,SAAA,CAAAnC,IAAA;YAAA;UAAA;UAAA,MAClE,IAAIE,KAAK,CAAC,mDAAmD,CAAC;QAAA;UAAA+B,oBAAA,GAG3C,IAAA9B,iCAAkB,EAACb,OAAO,IAAIF,aAAa,CAAC,EAA3DI,WAAW,GAAAyC,oBAAA,CAAlB7B,KAAK;UAENjB,IAAI,GAAGiD,mBAAU,CAACC,IAAI,CAAC1C,OAAO,CAAC;UAAAwC,SAAA,CAAAnC,IAAA;UAAA,OAE/B5B,EAAE,CAACkC,EAAE,CAACgC,UAAU,CAAC;YACnBlC,KAAK,EAAEZ,WAAW;YAClBgB,UAAU,EAAE;cACR+B,IAAI,EAAElD,gBAAgB;cACtBmD,YAAY,EAAE;gBACV9B,MAAM,EAAE,MAAM;gBACdC,WAAW,EAAE;kBACTE,WAAW,EAAE;gBACjB;cACJ;YACJ,CAAC;YACD4B,IAAI,EAAE,CAAC;cAACtD,IAAI,EAAJA,IAAI;cAAEgC,YAAY,EAAEF,IAAI,CAACyB,SAAS,CAAC/C,OAAO;YAAC,CAAC;UACxD,CAAC,CAAC;QAAA;UAAA,OAAAwC,SAAA,CAAApB,MAAA,WAEK5B,IAAI;QAAA;QAAA;UAAA,OAAAgD,SAAA,CAAAV,IAAA;MAAA;IAAA,GAAAM,QAAA;EAAA,CACd;EAAA,OAAAD,iBAAA,CAAAlD,KAAA,OAAAC,SAAA;AAAA"}
|
@@ -1,6 +1,4 @@
|
|
1
1
|
import { AppConfig } from '@gravity-ui/nodekit';
|
2
2
|
import type { Response } from 'express';
|
3
3
|
export declare function isYtAuthEnabled(config: AppConfig): boolean;
|
4
|
-
export declare function assertAuthEnabled(ytAuthCluster?: string): asserts ytAuthCluster is string;
|
5
|
-
export declare function getAuthCluster(config: AppConfig): string;
|
6
4
|
export declare function YTAuthLogout(res: Response): void;
|
@@ -1,23 +1,14 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.YTAuthLogout = exports.
|
3
|
+
exports.YTAuthLogout = exports.isYtAuthEnabled = void 0;
|
4
4
|
const constants_1 = require("../../shared/constants");
|
5
|
+
const utils_1 = require("./utils");
|
5
6
|
function isYtAuthEnabled(config) {
|
6
|
-
return Boolean(config.
|
7
|
+
return Boolean(config.allowPasswordAuth);
|
7
8
|
}
|
8
9
|
exports.isYtAuthEnabled = isYtAuthEnabled;
|
9
|
-
function assertAuthEnabled(ytAuthCluster) {
|
10
|
-
if (!ytAuthCluster) {
|
11
|
-
throw new Error('Cluster for password authentication is disabled. You have to define ytAuthCluster to use it.');
|
12
|
-
}
|
13
|
-
}
|
14
|
-
exports.assertAuthEnabled = assertAuthEnabled;
|
15
|
-
function getAuthCluster(config) {
|
16
|
-
assertAuthEnabled(config.ytAuthCluster);
|
17
|
-
return config.ytAuthCluster;
|
18
|
-
}
|
19
|
-
exports.getAuthCluster = getAuthCluster;
|
20
10
|
function YTAuthLogout(res) {
|
21
|
-
|
11
|
+
const clusters = (0, utils_1.getClustersFromConfig)();
|
12
|
+
res.setHeader('set-cookie', [`${constants_1.YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`].concat(Object.keys(clusters).map((cluster) => `${cluster}:${constants_1.YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`)));
|
22
13
|
}
|
23
14
|
exports.YTAuthLogout = YTAuthLogout;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_constants","require","isYtAuthEnabled","config","Boolean","
|
1
|
+
{"version":3,"names":["_constants","require","_utils","isYtAuthEnabled","config","Boolean","allowPasswordAuth","YTAuthLogout","res","clusters","getClustersFromConfig","setHeader","concat","YT_CYPRESS_COOKIE_NAME","Object","keys","map","cluster"],"sources":["yt-auth.ts"],"sourcesContent":["import {AppConfig} from '@gravity-ui/nodekit';\nimport type {Response} from 'express';\nimport {YT_CYPRESS_COOKIE_NAME} from '../../shared/constants';\nimport {getClustersFromConfig} from './utils';\n\nexport function isYtAuthEnabled(config: AppConfig) {\n return Boolean(config.allowPasswordAuth);\n}\n\nexport function YTAuthLogout(res: Response) {\n const clusters = getClustersFromConfig();\n\n res.setHeader(\n 'set-cookie',\n [`${YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`].concat(\n Object.keys(clusters).map(\n (cluster) => `${cluster}:${YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`,\n ),\n ),\n );\n}\n"],"mappings":";;;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEO,SAASE,eAAeA,CAACC,MAAiB,EAAE;EAC/C,OAAOC,OAAO,CAACD,MAAM,CAACE,iBAAiB,CAAC;AAC5C;AAEO,SAASC,YAAYA,CAACC,GAAa,EAAE;EACxC,IAAMC,QAAQ,GAAG,IAAAC,4BAAqB,EAAC,CAAC;EAExCF,GAAG,CAACG,SAAS,CACT,YAAY,EACZ,IAAAC,MAAA,CAAIC,iCAAsB,kCAA+B,CAACD,MAAM,CAC5DE,MAAM,CAACC,IAAI,CAACN,QAAQ,CAAC,CAACO,GAAG,CACrB,UAACC,OAAO;IAAA,UAAAL,MAAA,CAAQK,OAAO,OAAAL,MAAA,CAAIC,iCAAsB;EAAA,CACrD,CACJ,CACJ,CAAC;AACL"}
|
@@ -2,23 +2,15 @@
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
|
-
var _a;
|
6
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
7
6
|
const type_is_1 = __importDefault(require("type-is"));
|
8
7
|
const expresskit_1 = require("@gravity-ui/expresskit");
|
9
8
|
const path = require('path');
|
10
|
-
const ytAuthConfig =
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
? {
|
16
|
-
userColumnPresets: {
|
17
|
-
cluster: process.env.YT_AUTH_CLUSTER_ID,
|
18
|
-
dynamicTablePath: process.env.YT_USER_COLUMN_PRESETS_PATH,
|
19
|
-
},
|
20
|
-
}
|
21
|
-
: {})) : {};
|
9
|
+
const ytAuthConfig = {
|
10
|
+
allowPasswordAuth: Boolean(process.env.ALLOW_PASSWORD_AUTH),
|
11
|
+
ytAuthAllowInsecure: Boolean(process.env.YT_AUTH_ALLOW_INSECURE),
|
12
|
+
appAuthPolicy: expresskit_1.AuthPolicy.required,
|
13
|
+
};
|
22
14
|
const config = Object.assign(Object.assign({ appName: 'YTSaurus', appSocket: 'dist/run/server.sock', appAuthPolicy: process.env.AUTH_POLICY || 'redirect' }, ytAuthConfig), {
|
23
15
|
// TODO: fix me
|
24
16
|
// csp: 'disabled',
|