Skip to content

Commit

Permalink
Merge branch 'master' into i18n/test_kibana_translation_paths
Browse files Browse the repository at this point in the history
  • Loading branch information
kibanamachine authored Oct 27, 2020
2 parents d0b9dac + 8fa93bc commit 6d42c33
Show file tree
Hide file tree
Showing 48 changed files with 593 additions and 487 deletions.
7 changes: 7 additions & 0 deletions docs/management/advanced-options.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ values.
. Enter a new value for the setting.
. Click *Save changes*.

[float]
=== Required permissions

The `Advanced Settings` {kib} privilege is required to access *Advanced Settings*.

To add the privilege, open the menu, then click *Stack Management > Roles*.


[float]
[[settings-read-only-access]]
Expand Down
5 changes: 5 additions & 0 deletions docs/management/alerting/alerts-and-actions-intro.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,8 @@ The *Alerts and Actions* UI only shows alerts and connectors for the current spa
can be managed through the <<watcher-ui, Watcher UI>>. See
<<alerting-concepts-differences>> for more information.
============================================================================

[float]
=== Required permissions

Access to alerts and actions is granted based on your privileges to alerting-enabled features. See <<alerting-security, Alerting Security>> for more information.
7 changes: 7 additions & 0 deletions docs/management/managing-beats.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ more information, see https://www.elastic.co/subscriptions and
enrollment and configuration process step by step the first time you use the
Central Management UI.

[float]
=== Required permissions

You must have the `beats_admin` role assigned to use **{beats} Central Management**

To assign the role, open the menu, then click *Stack Management > Users*.


[float]
=== Enroll {beats}
Expand Down
7 changes: 7 additions & 0 deletions docs/management/managing-fields.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ the index patterns that retrieve your data from {es}.
[role="screenshot"]
image::images/management-index-patterns.png[]

[float]
=== Required permissions

The `Index Pattern Management` {kib} privilege is required to access the *Index patterns* UI.

To add the privilege, open the menu, then click *Stack Management > Roles*.

[float]
=== Create an index pattern

Expand Down
10 changes: 10 additions & 0 deletions docs/management/managing-saved-objects.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,16 @@ To get started, open the main menu, then click *Stack Management > Saved Objects
[role="screenshot"]
image::images/management-saved-objects.png[Saved Objects]

[float]
=== Required permissions

The `Saved Objects Management` {kib} privilege is required to access the *Saved Objects* UI.

To add the privilege, open the menu, then click *Stack Management > Roles*.

NOTE:
Granting access to Saved Objects Management will authorize users to manage all saved objects in {kib}, including objects that are managed by applications they may not otherwise be authorized to access.


[float]
[[managing-saved-objects-view]]
Expand Down
Binary file modified docs/spaces/images/edit-space-feature-visibility.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/spaces/images/edit-space.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/spaces/images/space-selector.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/spaces/images/spaces-roles.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions docs/spaces/index.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ Kibana supports spaces in several ways. You can:
* <<spaces-default-route, Configure a Space-level landing page>>
* <<spaces-delete-started, Disable the Spaces feature>>

[float]
==== Required permissions

The `kibana_admin` role or equivilent is required to manage **Spaces**.

[float]
[[spaces-managing]]
=== View, create, and delete spaces
Expand Down
2 changes: 1 addition & 1 deletion docs/user/introduction.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ You can even choose which features to enable within each space. Don’t need
Machine learning in your “Executive” space? Simply turn it off.

[role="screenshot"]
image::images/intro-spaces.jpg[]
image::images/intro-spaces.png[Space selector screen]

You can take this all one step further with Kibana’s security features, and
control which users have access to each space. {kib} allows for fine-grained
Expand Down
Binary file removed docs/user/introduction/images/intro-spaces.jpg
Binary file not shown.
Binary file modified docs/user/introduction/images/intro-spaces.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions docs/user/management.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
*Stack Management* is home to UIs for managing all things Elastic Stack&mdash;
indices, clusters, licenses, UI settings, index patterns, spaces, and more.


Access to individual features is governed by {es} and {kib} privileges.
Consult your administrator if you do not have the appropriate access.

[float]
[[manage-ingest]]
== Ingest
Expand Down
7 changes: 6 additions & 1 deletion docs/user/security/authorization/index.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,12 @@ NOTE: When running multiple tenants of {kib} by changing the `kibana.index` in y
[[xpack-kibana-role-management]]
=== {kib} role management

To create a role that grants {kib} privileges, open the main menu, click *Stack Management > Roles*, then click *Create role*.
To create a role that grants {kib} privileges, open the menu, then click *Stack Management > Roles* and click **Create role**.

[float]
==== Required permissions

The `manage_security` cluster privilege is required to access role management.

[[adding_kibana_privileges]]
==== Adding {kib} privileges
Expand Down
Binary file modified docs/user/security/images/add-space-privileges.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/security/images/assign_base_privilege.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/security/images/assign_feature_privilege.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/security/images/privilege-example-1.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/security/images/role-space-visualization.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/security/images/view-privilege-summary.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions docs/user/security/index.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ auditing. For more information, see
{ref}/secure-cluster.html[Secure a cluster] and
<<using-kibana-with-security,Configuring Security in {kib}>>.

[float]
=== Required permissions

The `manage_security` cluster privilege is required to access all Security features.


[float]
=== Users

Expand Down
5 changes: 5 additions & 0 deletions docs/user/security/role-mappings/index.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ With *Role mappings*, you can:
[role="screenshot"]
image:user/security/role-mappings/images/role-mappings-grid.png["Role mappings"]

[float]
==== Required permissions

The `manage_security` cluster privilege is required to manage Role Mappings.


[float]
=== Create a role mapping
Expand Down
13 changes: 3 additions & 10 deletions x-pack/plugins/actions/server/builtin_action_types/webhook.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,8 @@ describe('config validation', () => {
};

test('config validation passes when only required fields are provided', () => {
const config: Record<string, string | boolean> = {
const config: Record<string, string> = {
url: 'http://mylisteningserver:9200/endpoint',
hasAuth: true,
};
expect(validateConfig(actionType, config)).toEqual({
...defaultValues,
Expand All @@ -102,10 +101,9 @@ describe('config validation', () => {

test('config validation passes when valid methods are provided', () => {
['post', 'put'].forEach((method) => {
const config: Record<string, string | boolean> = {
const config: Record<string, string> = {
url: 'http://mylisteningserver:9200/endpoint',
method,
hasAuth: true,
};
expect(validateConfig(actionType, config)).toEqual({
...defaultValues,
Expand All @@ -129,9 +127,8 @@ describe('config validation', () => {
});

test('config validation passes when a url is specified', () => {
const config: Record<string, string | boolean> = {
const config: Record<string, string> = {
url: 'http://mylisteningserver:9200/endpoint',
hasAuth: true,
};
expect(validateConfig(actionType, config)).toEqual({
...defaultValues,
Expand All @@ -158,7 +155,6 @@ describe('config validation', () => {
headers: {
'Content-Type': 'application/json',
},
hasAuth: true,
};
expect(validateConfig(actionType, config)).toEqual({
...defaultValues,
Expand Down Expand Up @@ -188,7 +184,6 @@ describe('config validation', () => {
headers: {
'Content-Type': 'application/json',
},
hasAuth: true,
};

expect(validateConfig(actionType, config)).toEqual({
Expand Down Expand Up @@ -268,7 +263,6 @@ describe('execute()', () => {
headers: {
aheader: 'a value',
},
hasAuth: true,
};
await actionType.executor({
actionId: 'some-id',
Expand Down Expand Up @@ -326,7 +320,6 @@ describe('execute()', () => {
headers: {
aheader: 'a value',
},
hasAuth: false,
};
const secrets: ActionTypeSecretsType = { user: null, password: null };
await actionType.executor({
Expand Down
5 changes: 2 additions & 3 deletions x-pack/plugins/actions/server/builtin_action_types/webhook.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ const configSchemaProps = {
defaultValue: WebhookMethods.POST,
}),
headers: nullableType(HeadersSchema),
hasAuth: schema.boolean({ defaultValue: true }),
};
const ConfigSchema = schema.object(configSchemaProps);
export type ActionTypeConfigType = TypeOf<typeof ConfigSchema>;
Expand Down Expand Up @@ -129,12 +128,12 @@ export async function executor(
execOptions: WebhookActionTypeExecutorOptions
): Promise<ActionTypeExecutorResult<unknown>> {
const actionId = execOptions.actionId;
const { method, url, headers = {}, hasAuth } = execOptions.config;
const { method, url, headers = {} } = execOptions.config;
const { body: data } = execOptions.params;

const secrets: ActionTypeSecretsType = execOptions.secrets;
const basicAuth =
hasAuth && isString(secrets.user) && isString(secrets.password)
isString(secrets.user) && isString(secrets.password)
? { auth: { username: secrets.user, password: secrets.password } }
: {};

Expand Down
57 changes: 0 additions & 57 deletions x-pack/plugins/actions/server/saved_objects/migrations.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,63 +58,6 @@ describe('7.10.0', () => {
});
});

describe('7.11.0', () => {
beforeEach(() => {
jest.resetAllMocks();
encryptedSavedObjectsSetup.createMigration.mockImplementation(
(shouldMigrateWhenPredicate, migration) => migration
);
});

test('add hasAuth = true for .webhook actions with user and password', () => {
const migration711 = getMigrations(encryptedSavedObjectsSetup)['7.11.0'];
const action = getMockDataForWebhook({}, true);
expect(migration711(action, context)).toMatchObject({
...action,
attributes: {
...action.attributes,
config: {
hasAuth: true,
},
},
});
});

test('add hasAuth = false for .webhook actions without user and password', () => {
const migration711 = getMigrations(encryptedSavedObjectsSetup)['7.11.0'];
const action = getMockDataForWebhook({}, false);
expect(migration711(action, context)).toMatchObject({
...action,
attributes: {
...action.attributes,
config: {
hasAuth: false,
},
},
});
});
});

function getMockDataForWebhook(
overwrites: Record<string, unknown> = {},
hasUserAndPassword: boolean
): SavedObjectUnsanitizedDoc<RawAction> {
const secrets = hasUserAndPassword
? { user: 'test', password: '123' }
: { user: '', password: '' };
return {
attributes: {
name: 'abc',
actionTypeId: '.webhook',
config: {},
secrets,
...overwrites,
},
id: uuid.v4(),
type: 'action',
};
}

function getMockDataForEmail(
overwrites: Record<string, unknown> = {}
): SavedObjectUnsanitizedDoc<RawAction> {
Expand Down
10 changes: 0 additions & 10 deletions x-pack/plugins/actions/server/saved_objects/migrations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,8 @@ export function getMigrations(
pipeMigrations(renameCasesConfigurationObject, addHasAuthConfigurationObject)
);

const migrationWebhookConnectorHasAuth = encryptedSavedObjects.createMigration<
RawAction,
RawAction
>(
(doc): doc is SavedObjectUnsanitizedDoc<RawAction> =>
doc.attributes.actionTypeId === '.webhook',
pipeMigrations(addHasAuthConfigurationObject)
);

return {
'7.10.0': executeMigrationWithErrorHandling(migrationActions, '7.10.0'),
'7.11.0': executeMigrationWithErrorHandling(migrationWebhookConnectorHasAuth, '7.11.0'),
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {
EuiRadio,
EuiSwitch,
EuiTitle,
EuiText,
EuiSpacer,
htmlIdGenerator,
EuiCallOut,
Expand All @@ -28,6 +29,7 @@ import { policyConfig } from '../../../store/policy_details/selectors';
import { usePolicyDetailsSelector } from '../../policy_hooks';
import { clone } from '../../../models/policy_details_config';
import { LinkToApp } from '../../../../../../common/components/endpoint/link_to_app';
import { popupVersionsMap } from './popup_options_to_versions';

const ProtectionRadioGroup = styled.div`
display: flex;
Expand Down Expand Up @@ -83,6 +85,25 @@ const ProtectionRadio = React.memo(({ id, label }: { id: ProtectionModes; label:

ProtectionRadio.displayName = 'ProtectionRadio';

const SupportedVersionNotice = ({ optionName }: { optionName: string }) => {
const version = popupVersionsMap.get(optionName);
if (!version) {
return null;
}

return (
<EuiText color="subdued" size="xs">
<i>
<FormattedMessage
id="xpack.securitySolution.endpoint.policyDetails.supportedVersion"
defaultMessage="Agent version {version}"
values={{ version }}
/>
</i>
</EuiText>
);
};

/** The Malware Protections form for policy details
* which will configure for all relevant OSes.
*/
Expand Down Expand Up @@ -189,14 +210,15 @@ export const MalwareProtections = React.memo(() => {
/>
</h6>
</EuiTitle>
<SupportedVersionNotice optionName="malware" />
<EuiSpacer size="s" />
<EuiCheckbox
id="xpack.securitySolution.endpoint.policyDetail.malware.userNotification"
onChange={handleUserNotificationCheckbox}
checked={userNotificationSelected}
label={i18n.translate(
'xpack.securitySolution.endpoint.policyDetail.malware.userNotification',
{ defaultMessage: 'User Notification' }
)}
label={i18n.translate('xpack.securitySolution.endpoint.policyDetail.malware.notifyUser', {
defaultMessage: 'Notify User',
})}
/>
</>
);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/

const popupVersions: Array<[string, string]> = [['malware', '7.11+']];

export const popupVersionsMap: ReadonlyMap<string, string> = new Map<string, string>(popupVersions);
2 changes: 1 addition & 1 deletion x-pack/plugins/translations/translations/ja-JP.json
Original file line number Diff line number Diff line change
Expand Up @@ -20244,6 +20244,7 @@
"xpack.triggersActionsUI.sections.actionsConnectorsList.unableToLoadActionTypesMessage": "アクションタイプを読み込めません",
"xpack.triggersActionsUI.sections.addAction.webhookAction.error.requiredHeaderKeyText": "キーが必要です。",
"xpack.triggersActionsUI.sections.addAction.webhookAction.error.requiredHeaderValueText": "値が必要です。",
"xpack.triggersActionsUI.sections.addAction.webhookAction.error.requiredHostText": "ユーザー名が必要です。",
"xpack.triggersActionsUI.sections.addAction.webhookAction.error.requiredMethodText": "メソッドが必要です",
"xpack.triggersActionsUI.sections.addAction.webhookAction.error.requiredPasswordText": "パスワードが必要です。",
"xpack.triggersActionsUI.sections.addAlert.error.greaterThenThreshold0Text": "しきい値 1 はしきい値 0 よりも大きい値にしてください。",
Expand Down Expand Up @@ -20367,7 +20368,6 @@
"xpack.triggersActionsUI.sections.alertsList.alertStatusOk": "OK",
"xpack.triggersActionsUI.sections.alertsList.alertStatusPending": "保留中",
"xpack.triggersActionsUI.sections.alertsList.alertStatusUnknown": "不明",
"xpack.triggersActionsUI.sections.alertsList.attentionBannerTitle": "{totalStausesError} {totalStausesError, plural, one {{singleTitle}} other {# {multipleTitle}}}でエラーが見つかりました。",
"xpack.triggersActionsUI.sections.alertsList.bulkActionPopover.buttonTitle": "アラートを管理",
"xpack.triggersActionsUI.sections.alertsList.bulkActionPopover.deleteAllTitle": "削除",
"xpack.triggersActionsUI.sections.alertsList.bulkActionPopover.disableAllTitle": "無効にする",
Expand Down
Loading

0 comments on commit 6d42c33

Please sign in to comment.