Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 9f51173

Browse files
authoredJan 4, 2024··
Merge branch 'main' into cookie-splitting-for-jwt
2 parents 2fe8a7c + d64ee48 commit 9f51173

39 files changed

+99
-81
lines changed
 

‎.github/workflows/cypress-test-oidc-e2e.yml

+2-8
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ env:
1212
PLUGIN_NAME: opensearch-security
1313
# This is the SHA256 checksum of the known good kc.sh script for Keycloak version 21.0.1.
1414
KNOWN_CHECKSUM_OF_KEYCLOAK_SCRIPT: 'f825ea1a9ffa5ad91673737c06857ababbb69b6b8f09e0c637b4c998517f9608'
15+
OPENSEARCH_INITIAL_ADMIN_PASSWORD: myStrongPassword123!
1516

1617
jobs:
1718
tests:
@@ -157,13 +158,6 @@ jobs:
157158
echo "THIS IS THE SECURITY CONFIG FILE: "
158159
cat config.yml
159160
160-
# TODO: REMOVE THIS ONCE ADMIN JAVA TOOL SUPPORT IT
161-
- name: Write password to initialAdminPassword location
162-
if: ${{ runner.os == 'Linux'}}
163-
run:
164-
echo admin >> ./opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/config/initialAdminPassword.txt
165-
shell: bash
166-
167161
# Run any configuration scripts
168162
- name: Run Setup Script for Linux
169163
if: ${{ runner.os == 'Linux' }}
@@ -189,7 +183,7 @@ jobs:
189183
# Verify that the server is operational
190184
- name: Check OpenSearch Running on Linux
191185
if: ${{ runner.os != 'Windows'}}
192-
run: curl https://localhost:9200/_cat/plugins -u 'admin:admin' -k -v
186+
run: curl https://localhost:9200/_cat/plugins -u 'admin:${{ env.OPENSEARCH_INITIAL_ADMIN_PASSWORD }}' -k -v
193187
shell: bash
194188

195189
- if: always()

‎.github/workflows/cypress-test-saml-e2e.yml

+3-9
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ env:
88
# avoid warnings like "tput: No value for $TERM and no -T specified"
99
TERM: xterm
1010
PLUGIN_NAME: opensearch-security
11-
11+
OPENSEARCH_INITIAL_ADMIN_PASSWORD: myStrongPassword123!
12+
1213
jobs:
1314
tests:
1415
name: Run Cypress E2E SAML tests
@@ -57,13 +58,6 @@ jobs:
5758
rm -f opensearch-*.tar.gz
5859
shell: bash
5960

60-
# TODO: REMOVE THIS ONCE ADMIN JAVA TOOL SUPPORT IT
61-
- name: Write password to initialAdminPassword location
62-
if: ${{ runner.os == 'Linux'}}
63-
run:
64-
echo admin >> ./opensearch-${{ env.OPENSEARCH_VERSION }}-SNAPSHOT/config/initialAdminPassword.txt
65-
shell: bash
66-
6761
# Install the security plugin
6862
- name: Install Plugin into OpenSearch for Linux
6963
if: ${{ runner.os == 'Linux'}}
@@ -145,7 +139,7 @@ jobs:
145139
# Verify that the server is operational
146140
- name: Check OpenSearch Running on Linux
147141
if: ${{ runner.os != 'Windows'}}
148-
run: curl https://localhost:9200/_cat/plugins -u 'admin:admin' -k -v
142+
run: curl https://localhost:9200/_cat/plugins -u 'admin:${{ env.OPENSEARCH_INITIAL_ADMIN_PASSWORD }}' -k -v
149143
shell: bash
150144

151145
- if: always()

‎DEVELOPER_GUIDE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ For the sake of this guide, let's assume the latest version on main for OpenSear
3535
Ensure that an OpenSearch cluster with the security plugin installed is running locally. If you followed the steps from [the developer guide of the Security Plugin](https://github.com/opensearch-project/security/blob/main/DEVELOPER_GUIDE.md), then you can verify this by running:
3636

3737
```
38-
curl -XGET https://admin:admin@localhost:9200/ --insecure
38+
curl -XGET https://admin:<admin password>@localhost:9200/ --insecure
3939
```
4040

4141
## Install OpenSearch-Dashboards with Security Dashboards Plugin

‎common/index.ts

+12
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,18 @@ export enum AuthType {
6464
ANONYMOUS = 'anonymous',
6565
}
6666

67+
export enum ResourceType {
68+
roles = 'roles',
69+
users = 'users',
70+
serviceAccounts = 'serviceAccounts',
71+
permissions = 'permissions',
72+
tenants = 'tenants',
73+
tenantsManageTab = 'tenantsManageTab',
74+
tenantsConfigureTab = 'tenantsConfigureTab',
75+
auth = 'auth',
76+
auditLogging = 'auditLogging',
77+
}
78+
6779
/**
6880
* A valid resource name should not containing percent sign (%) as they raise url injection issue.
6981
* And also should not be empty.

‎cypress.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@ module.exports = defineConfig({
3030
env: {
3131
openSearchUrl: 'https://localhost:9200',
3232
adminUserName: 'admin',
33-
adminPassword: 'admin',
33+
adminPassword: 'myStrongPassword123!',
3434
},
3535
});

‎public/apps/configuration/app-router.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ import { RoleView } from './panels/role-view/role-view';
3636
import { TenantList } from './panels/tenant-list/tenant-list';
3737
import { UserList } from './panels/user-list';
3838
import { ServiceAccountList } from './panels/service-account-list';
39-
import { Action, ResourceType, RouteItem, SubAction } from './types';
39+
import { Action, RouteItem, SubAction } from './types';
40+
import { ResourceType } from '../../../common';
4041
import { buildHashUrl, buildUrl } from './utils/url-builder';
4142
import { CrossPageToast } from './cross-page-toast';
4243

‎public/apps/configuration/constants.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@ export const INDEX_PERMISSIONS: string[] = [
315315
'indices:monitor/shard_stores',
316316
'indices:monitor/stats',
317317
'indices:monitor/upgrade',
318+
'system:admin/system_index',
318319
];
319320

320321
export function includeIndexPermissions(indexPermissionsToInclude: string[]) {

‎public/apps/configuration/panels/audit-logging/audit-logging-edit-settings.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import { SETTING_GROUPS, SettingMapItem } from './constants';
3131
import { EditSettingGroup } from './edit-setting-group';
3232
import { AuditLoggingSettings } from './types';
3333
import { buildHashUrl, buildUrl } from '../../utils/url-builder';
34-
import { ResourceType } from '../../types';
34+
import { ResourceType } from '../../../../../common';
3535
import { getAuditLogging, updateAuditLogging } from '../../utils/audit-logging-utils';
3636
import { useToastState } from '../../utils/toast-utils';
3737
import { setCrossPageToast } from '../../utils/storage-utils';

‎public/apps/configuration/panels/audit-logging/audit-logging.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import {
3131
import React from 'react';
3232
import { FormattedMessage } from '@osd/i18n/react';
3333
import { AppDependencies } from '../../../types';
34-
import { ResourceType } from '../../types';
34+
import { ResourceType } from '../../../../../common';
3535
import { getAuditLogging, updateAuditLogging } from '../../utils/audit-logging-utils';
3636
import { displayBoolean, ExternalLink } from '../../utils/display-utils';
3737
import { buildHashUrl } from '../../utils/url-builder';

‎public/apps/configuration/panels/audit-logging/test/audit-logging-edit-settings.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { AuditLoggingEditSettings } from '../audit-logging-edit-settings';
1818
import React from 'react';
1919
import { ComplianceSettings, GeneralSettings } from '../types';
2020
import { buildHashUrl } from '../../../utils/url-builder';
21-
import { ResourceType } from '../../../types';
21+
import { ResourceType } from '../../../../../../common';
2222

2323
jest.mock('../../../utils/audit-logging-utils');
2424

‎public/apps/configuration/panels/audit-logging/test/audit-logging.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { AuditLogging, renderComplianceSettings, renderGeneralSettings } from '.
1818
import React from 'react';
1919
import { EuiSwitch } from '@elastic/eui';
2020
import { buildHashUrl } from '../../../utils/url-builder';
21-
import { ResourceType } from '../../../types';
21+
import { ResourceType } from '../../../../../../common';
2222
import {
2323
SUB_URL_FOR_COMPLIANCE_SETTINGS_EDIT,
2424
SUB_URL_FOR_GENERAL_SETTINGS_EDIT,

‎public/apps/configuration/panels/get-started.tsx

+3-8
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,12 @@ import {
2727
} from '@elastic/eui';
2828
import React from 'react';
2929
import { FormattedMessage } from '@osd/i18n/react';
30-
import { flow } from 'lodash';
31-
import { HashRouter as Router, Route } from 'react-router-dom';
3230
import { AppDependencies } from '../../types';
33-
import { buildHashUrl, buildUrl } from '../utils/url-builder';
34-
import { Action, ResourceType, RouteItem } from '../types';
31+
import { buildHashUrl } from '../utils/url-builder';
32+
import { Action } from '../types';
33+
import { ResourceType } from '../../../../common';
3534
import { API_ENDPOINT_CACHE, DocLinks } from '../constants';
3635
import { ExternalLink, ExternalLinkButton } from '../utils/display-utils';
37-
import { TenantList } from './tenant-list/tenant-list';
38-
import { getBreadcrumbs } from '../app-router';
39-
40-
import { CrossPageToast } from '../cross-page-toast';
4136

4237
const addBackendStep = {
4338
title: 'Add backends',

‎public/apps/configuration/panels/internal-user-edit/internal-user-edit.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ import {
2626
} from '@elastic/eui';
2727
import React, { useState } from 'react';
2828
import { BreadcrumbsPageDependencies } from '../../../types';
29-
import { InternalUserUpdate, ResourceType } from '../../types';
29+
import { InternalUserUpdate } from '../../types';
30+
import { ResourceType } from '../../../../../common';
3031
import { getUserDetail, updateUser } from '../../utils/internal-user-detail-utils';
3132
import { PanelWithHeader } from '../../utils/panel-with-header';
3233
import { PasswordEditPanel } from '../../utils/password-edit-panel';

‎public/apps/configuration/panels/role-edit/cluster-permission-panel.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515

1616
import React, { Dispatch, SetStateAction } from 'react';
1717
import { EuiForm, EuiFlexGroup, EuiFlexItem, EuiComboBox } from '@elastic/eui';
18-
import { ComboBoxOptions, ResourceType } from '../../types';
18+
import { ComboBoxOptions } from '../../types';
19+
import { ResourceType } from '../../../../../common';
1920
import { PanelWithHeader } from '../../utils/panel-with-header';
2021
import { FormRow } from '../../utils/form-row';
2122
import { LIMIT_WIDTH_INPUT_CLASS } from '../../constants';

‎public/apps/configuration/panels/role-edit/index-permission-panel.tsx

+4-3
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ import {
2525
} from '@elastic/eui';
2626
import React, { Dispatch, Fragment, SetStateAction } from 'react';
2727
import { isEmpty } from 'lodash';
28-
import { RoleIndexPermission, ResourceType } from '../../types';
28+
import { RoleIndexPermission } from '../../types';
29+
import { ResourceType } from '../../../../../common';
2930
import {
3031
appendElementToArray,
3132
removeElementFromArray,
@@ -141,9 +142,9 @@ export function IndexPermissionRow(props: {
141142
return (
142143
<FormRow
143144
headerText="Index permissions"
144-
headerSubText="You can specify permissions using both action groups or single permissions.
145+
headerSubText="You can specify permissions using both action groups or single permissions.
145146
A permission group is a list of single permissions.
146-
You can often achieve your desired security posture using some combination of the default permission groups.
147+
You can often achieve your desired security posture using some combination of the default permission groups.
147148
You can also create your own reusable permission groups."
148149
>
149150
<EuiFlexGroup>

‎public/apps/configuration/panels/role-edit/role-edit.tsx

+8-3
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ import {
4646
} from './tenant-panel';
4747
import { RoleIndexPermissionStateClass, RoleTenantPermissionStateClass } from './types';
4848
import { buildHashUrl, buildUrl } from '../../utils/url-builder';
49-
import { ComboBoxOptions, ResourceType, Action, ActionGroupItem } from '../../types';
49+
import { ComboBoxOptions, Action, ActionGroupItem } from '../../types';
50+
import { ResourceType } from '../../../../../common';
5051
import {
5152
useToastState,
5253
createUnknownErrorToast,
@@ -175,7 +176,9 @@ export function RoleEdit(props: RoleEditDeps) {
175176
{
176177
label: 'Other permission groups',
177178
options: actionGroups
178-
.filter((actionGroup) => actionGroup[1].type === undefined)
179+
.filter(
180+
(actionGroup) => !['cluster', 'index', 'kibana'].includes(actionGroup[1].type || '')
181+
)
179182
.map((actionGroup) => actionGroup[0])
180183
.map(stringToComboBoxOption),
181184
},
@@ -196,7 +199,9 @@ export function RoleEdit(props: RoleEditDeps) {
196199
{
197200
label: 'Other permission groups',
198201
options: actionGroups
199-
.filter((actionGroup) => actionGroup[1].type === undefined)
202+
.filter(
203+
(actionGroup) => !['cluster', 'index', 'kibana'].includes(actionGroup[1].type || '')
204+
)
200205
.map((actionGroup) => actionGroup[0])
201206
.map(stringToComboBoxOption),
202207
},

‎public/apps/configuration/panels/role-edit/test/role-edit-filtering.test.tsx

+14
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@ describe('Role edit filtering', () => {
7474
description: 'Custom group',
7575
static: true,
7676
},
77+
unlimited: {
78+
reserved: false,
79+
hidden: false,
80+
allowed_actions: ['*'],
81+
type: 'all',
82+
description: 'Unlimited group',
83+
static: true,
84+
},
7785
});
7886

7987
it('basic cluster permission panel rendering', async () => {
@@ -118,6 +126,9 @@ describe('Role edit filtering', () => {
118126
{
119127
label: 'custom',
120128
},
129+
{
130+
label: 'unlimited',
131+
},
121132
],
122133
},
123134
{
@@ -171,6 +182,9 @@ describe('Role edit filtering', () => {
171182
{
172183
label: 'custom',
173184
},
185+
{
186+
label: 'unlimited',
187+
},
174188
],
175189
},
176190
{

‎public/apps/configuration/panels/role-list.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ import {
4141
fetchRoleMapping,
4242
buildSearchFilterOptions,
4343
} from '../utils/role-list-utils';
44-
import { ResourceType, Action } from '../types';
44+
import { Action } from '../types';
45+
import { ResourceType } from '../../../../common';
4546
import { buildHashUrl } from '../utils/url-builder';
4647
import {
4748
ExternalLink,

‎public/apps/configuration/panels/role-mapping/role-edit-mapped-user.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ import { ExternalIdentityStateClass } from './types';
3535
import { ComboBoxOptions } from '../../types';
3636
import { stringToComboBoxOption, comboBoxOptionToString } from '../../utils/combo-box-utils';
3737
import { buildHashUrl, buildUrl } from '../../utils/url-builder';
38-
import { ResourceType, RoleMappingDetail, SubAction, Action } from '../../types';
38+
import { RoleMappingDetail, SubAction, Action } from '../../types';
39+
import { ResourceType } from '../../../../../common';
3940
import { fetchUserNameList } from '../../utils/internal-user-list-utils';
4041
import { updateRoleMapping, getRoleMappingData } from '../../utils/role-mapping-utils';
4142
import { createErrorToast, createUnknownErrorToast, useToastState } from '../../utils/toast-utils';

‎public/apps/configuration/panels/role-mapping/users-panel.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import { ComboBoxOptions } from '../../types';
1919
import { PanelWithHeader } from '../../utils/panel-with-header';
2020
import { FormRow } from '../../utils/form-row';
2121
import { buildHashUrl } from '../../utils/url-builder';
22-
import { ResourceType, Action } from '../../types';
22+
import { Action } from '../../types';
23+
import { ResourceType } from '../../../../../common';
2324
import { ExternalLinkButton } from '../../utils/display-utils';
2425
import { DocLinks } from '../../constants';
2526
import { appendOptionToComboBoxHandler } from '../../utils/combo-box-utils';

‎public/apps/configuration/panels/role-view/cluster-permission-panel.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ import React from 'react';
1717
import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
1818
import { PanelWithHeader } from '../../utils/panel-with-header';
1919
import { PermissionTree } from '../permission-tree';
20-
import { ActionGroupItem, DataObject, ResourceType, Action } from '../../types';
20+
import { ActionGroupItem, DataObject, Action } from '../../types';
21+
import { ResourceType } from '../../../../../common';
2122
import { buildHashUrl } from '../../utils/url-builder';
2223
import { loadingSpinner } from '../../utils/loading-spinner-utils';
2324
import { DocLinks } from '../../constants';

‎public/apps/configuration/panels/role-view/index-permission-panel.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ import {
3030
ActionGroupItem,
3131
ExpandedRowMapInterface,
3232
RoleIndexPermissionView,
33-
ResourceType,
3433
Action,
3534
} from '../../types';
35+
import { ResourceType } from '../../../../../common';
3636
import { truncatedListView, displayArray, tableItemsUIProps } from '../../utils/display-utils';
3737
import { PermissionTree } from '../permission-tree';
3838
import { getFieldLevelSecurityMethod } from '../../utils/index-permission-utils';

‎public/apps/configuration/panels/role-view/role-view.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import { difference } from 'lodash';
3939
import { BreadcrumbsPageDependencies } from '../../../types';
4040
import { buildHashUrl, buildUrl } from '../../utils/url-builder';
4141
import {
42-
ResourceType,
4342
Action,
4443
SubAction,
4544
RoleMappingDetail,
@@ -48,6 +47,7 @@ import {
4847
RoleIndexPermissionView,
4948
RoleTenantPermissionView,
5049
} from '../../types';
50+
import { ResourceType } from '../../../../../common';
5151
import {
5252
getRoleMappingData,
5353
MappedUsersListing,

‎public/apps/configuration/panels/role-view/tenants-panel.tsx

+2-6
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,8 @@ import {
2626
import { CoreStart } from 'opensearch-dashboards/public';
2727
import { getCurrentUser } from '../../../../utils/auth-info-utils';
2828
import { PanelWithHeader } from '../../utils/panel-with-header';
29-
import {
30-
RoleTenantPermissionView,
31-
RoleTenantPermissionDetail,
32-
ResourceType,
33-
Action,
34-
} from '../../types';
29+
import { RoleTenantPermissionView, RoleTenantPermissionDetail, Action } from '../../types';
30+
import { ResourceType } from '../../../../../common';
3531
import { truncatedListView, tableItemsUIProps } from '../../utils/display-utils';
3632
import {
3733
fetchTenants,

‎public/apps/configuration/panels/role-view/test/cluster-permission-panel.test.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import { shallow } from 'enzyme';
1818
import { ClusterPermissionPanel } from '../cluster-permission-panel';
1919
import { EuiButton, EuiEmptyPrompt, EuiLoadingSpinner } from '@elastic/eui';
2020
import { PermissionTree } from '../../permission-tree';
21-
import { Action, ResourceType } from '../../../types';
21+
import { Action } from '../../../types';
22+
import { ResourceType } from '../../../../../../common';
2223
import { buildHashUrl } from '../../../utils/url-builder';
2324

2425
describe('Role view - cluster permission panel', () => {

‎public/apps/configuration/panels/role-view/test/index-permission-panel.test.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515

1616
import React from 'react';
1717
import { shallow, mount } from 'enzyme';
18-
import { Action, ResourceType, RoleIndexPermissionView } from '../../../types';
18+
import { Action, RoleIndexPermissionView } from '../../../types';
19+
import { ResourceType } from '../../../../../../common';
1920
import {
2021
renderFieldLevelSecurity,
2122
renderRowExpanstionArrow,

‎public/apps/configuration/panels/role-view/test/role-view.test.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ import { getRoleDetail } from '../../../utils/role-detail-utils';
3030
import { transformRoleIndexPermissions } from '../../../utils/index-permission-utils';
3131
import { useDeleteConfirmState } from '../../../utils/delete-confirm-modal-utils';
3232
import { requestDeleteRoles } from '../../../utils/role-list-utils';
33-
import { Action, ResourceType, SubAction } from '../../../types';
33+
import { Action, SubAction } from '../../../types';
34+
import { ResourceType } from '../../../../../../common';
3435
import { buildHashUrl } from '../../../utils/url-builder';
3536
import { createUnknownErrorToast } from '../../../utils/toast-utils';
3637

‎public/apps/configuration/panels/role-view/test/tenants-panel.test.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import { mount, shallow } from 'enzyme';
1818
import { TenantsPanel } from '../tenants-panel';
1919
import { EuiEmptyPrompt, EuiInMemoryTable, EuiTableFieldDataColumnType } from '@elastic/eui';
2020
import { buildHashUrl } from '../../../utils/url-builder';
21-
import { Action, ResourceType, RoleTenantPermissionDetail } from '../../../types';
21+
import { Action, RoleTenantPermissionDetail } from '../../../types';
22+
import { ResourceType } from '../../../../../../common';
2223
import { RoleViewTenantInvalidText } from '../../../constants';
2324

2425
jest.mock('../../../utils/tenant-utils');

‎public/apps/configuration/panels/service-account-list.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ import React, { useState } from 'react';
3434
import { getAuthInfo } from '../../../utils/auth-info-utils';
3535
import { AppDependencies } from '../../types';
3636
import { API_ENDPOINT_SERVICEACCOUNTS, DocLinks } from '../constants';
37-
import { Action, ResourceType } from '../types';
37+
import { Action } from '../types';
38+
import { ResourceType } from '../../../../common';
3839
import { EMPTY_FIELD_VALUE } from '../ui-constants';
3940
import { useContextMenuState } from '../utils/context-menu';
4041
import { ExternalLink, tableItemsUIProps, truncatedListView } from '../utils/display-utils';

‎public/apps/configuration/panels/tenant-list/manage_tab.tsx

+3-4
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ import React, { ReactNode, useState, useCallback } from 'react';
3939
import { difference } from 'lodash';
4040
import { HashRouter as Router, Route } from 'react-router-dom';
4141
import { flow } from 'lodash';
42-
import { TenancyConfigSettings } from '../tenancy-config/types';
4342
import { getCurrentUser } from '../../../../utils/auth-info-utils';
4443
import { AppDependencies } from '../../../types';
45-
import { Action, ResourceType, Tenant } from '../../types';
44+
import { Action, Tenant } from '../../types';
45+
import { ResourceType } from '../../../../../common';
4646
import { ExternalLink, renderCustomization, tableItemsUIProps } from '../../utils/display-utils';
4747
import {
4848
fetchTenants,
@@ -481,8 +481,7 @@ export function ManageTab(props: AppDependencies) {
481481
return (
482482
<>
483483
{/*{tenancyDisabledWarning}*/}
484-
<EuiPageHeader>
485-
</EuiPageHeader>
484+
<EuiPageHeader></EuiPageHeader>
486485
<EuiPageContent>
487486
<EuiPageContentHeader>
488487
<EuiPageContentHeaderSection>

‎public/apps/configuration/panels/test/get-started.test.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
import { shallow } from 'enzyme';
1717
import React from 'react';
1818
import { EuiSteps } from '@elastic/eui';
19-
import { Action, ResourceType } from '../../types';
19+
import { Action } from '../../types';
20+
import { ResourceType } from '../../../../../common';
2021
import { buildHashUrl } from '../../utils/url-builder';
2122
import { GetStarted } from '../get-started';
2223

‎public/apps/configuration/panels/test/role-list.test.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import { mount, shallow } from 'enzyme';
1818
import React from 'react';
1919
import { EuiInMemoryTable, EuiTableFieldDataColumnType } from '@elastic/eui';
2020
import { buildHashUrl } from '../../utils/url-builder';
21-
import { Action, ResourceType } from '../../types';
21+
import { Action } from '../../types';
22+
import { ResourceType } from '../../../../../common';
2223
import { RoleListing } from '../../utils/role-list-utils';
2324
import { useDeleteConfirmState } from '../../utils/delete-confirm-modal-utils';
2425

‎public/apps/configuration/panels/test/service-account-list.test.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ jest.mock('../../utils/context-menu', () => ({
3232

3333
import { getAuthInfo } from '../../../../utils/auth-info-utils';
3434
import { buildHashUrl } from '../../utils/url-builder';
35-
import { ResourceType, Action } from '../../types';
35+
import { Action } from '../../types';
36+
import { ResourceType } from '../../../../../common';
3637

3738
describe('User list', () => {
3839
describe('dictView', () => {

‎public/apps/configuration/panels/test/user-list.test.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ jest.mock('../../utils/context-menu', () => ({
4040

4141
import { getAuthInfo } from '../../../../utils/auth-info-utils';
4242
import { buildHashUrl } from '../../utils/url-builder';
43-
import { ResourceType, Action } from '../../types';
43+
import { Action } from '../../types';
44+
import { ResourceType } from '../../../../../common';
4445

4546
describe('User list', () => {
4647
describe('dictView', () => {

‎public/apps/configuration/panels/user-list.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ import React, { useState } from 'react';
3535
import { getAuthInfo } from '../../../utils/auth-info-utils';
3636
import { AppDependencies } from '../../types';
3737
import { API_ENDPOINT_INTERNALUSERS, DocLinks } from '../constants';
38-
import { Action, ResourceType } from '../types';
38+
import { Action } from '../types';
39+
import { ResourceType } from '../../../../common';
3940
import { EMPTY_FIELD_VALUE } from '../ui-constants';
4041
import { useContextMenuState } from '../utils/context-menu';
4142
import { useDeleteConfirmState } from '../utils/delete-confirm-modal-utils';

‎public/apps/configuration/types.ts

-12
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,6 @@ export type ComboBoxOptions = EuiComboBoxOptionOption[];
1919

2020
export type FieldLevelSecurityMethod = 'exclude' | 'include';
2121

22-
export enum ResourceType {
23-
roles = 'roles',
24-
users = 'users',
25-
serviceAccounts = 'serviceAccounts',
26-
permissions = 'permissions',
27-
tenants = 'tenants',
28-
tenantsManageTab = 'tenantsManageTab',
29-
tenantsConfigureTab = 'tenantsConfigureTab',
30-
auth = 'auth',
31-
auditLogging = 'auditLogging',
32-
}
33-
3422
export enum Action {
3523
view = 'view',
3624
create = 'create',

‎public/apps/configuration/utils/internal-user-list-utils.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ import {
2020
API_ENDPOINT_INTERNALUSERS,
2121
API_ENDPOINT_SERVICEACCOUNTS,
2222
} from '../constants';
23-
import { DataObject, InternalUser, ObjectsMessage, ResourceType } from '../types';
23+
import { DataObject, InternalUser, ObjectsMessage } from '../types';
24+
import { ResourceType } from '../../../../common';
2425
import { httpDelete, httpGet } from './request-utils';
2526
import { getResourceUrl } from './resource-utils';
2627

‎public/apps/configuration/utils/url-builder.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
* permissions and limitations under the License.
1414
*/
1515

16-
import { ResourceType, Action } from '../types';
16+
import { Action } from '../types';
17+
import { ResourceType } from '../../../../common';
1718

1819
/**
1920
* Build hash based url, encode the resourceId part

‎server/routes/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {
2121
OpenSearchDashboardsResponseFactory,
2222
} from 'opensearch-dashboards/server';
2323
import { API_PREFIX, CONFIGURATION_API_PREFIX, isValidResourceName } from '../../common';
24-
import { ResourceType } from '../../public/apps/configuration/types';
24+
import { ResourceType } from '../../common';
2525

2626
// TODO: consider to extract entity CRUD operations and put it into a client class
2727
export function defineRoutes(router: IRouter) {

0 commit comments

Comments
 (0)
Please sign in to comment.