Skip to content

Commit

Permalink
[8.12] Add docs for SentinelOne connector (#174696) (#176083)
Browse files Browse the repository at this point in the history
# Backport

This will backport the following commits from `main` to `8.12`:
- [Add docs for SentinelOne connector
(#174696)](#174696)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Patryk
Kopyciński","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-02-01T17:15:26Z","message":"Add
docs for SentinelOne connector (#174696)\n\n## Summary\r\n\r\nAdd docs
for SentinelOne connector\r\n\r\n---------\r\n\r\nCo-authored-by: Joe
Peeples <[email protected]>\r\nCo-authored-by: Kibana Machine
<[email protected]>\r\nCo-authored-by:
lcawl
<[email protected]>","sha":"04004ddaaccb672ae446bcf2ac4e43958f5f5194","branchLabelMapping":{"^v8.13.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","docs","Feature:Actions/ConnectorTypes","v8.12.0","v8.13.0"],"title":"Add
docs for SentinelOne
connector","number":174696,"url":"https://github.com/elastic/kibana/pull/174696","mergeCommit":{"message":"Add
docs for SentinelOne connector (#174696)\n\n## Summary\r\n\r\nAdd docs
for SentinelOne connector\r\n\r\n---------\r\n\r\nCo-authored-by: Joe
Peeples <[email protected]>\r\nCo-authored-by: Kibana Machine
<[email protected]>\r\nCo-authored-by:
lcawl
<[email protected]>","sha":"04004ddaaccb672ae446bcf2ac4e43958f5f5194"}},"sourceBranch":"main","suggestedTargetBranches":["8.12"],"targetPullRequestStates":[{"branch":"8.12","label":"v8.12.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.13.0","branchLabelMappingKey":"^v8.13.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/174696","number":174696,"mergeCommit":{"message":"Add
docs for SentinelOne connector (#174696)\n\n## Summary\r\n\r\nAdd docs
for SentinelOne connector\r\n\r\n---------\r\n\r\nCo-authored-by: Joe
Peeples <[email protected]>\r\nCo-authored-by: Kibana Machine
<[email protected]>\r\nCo-authored-by:
lcawl
<[email protected]>","sha":"04004ddaaccb672ae446bcf2ac4e43958f5f5194"}}]}]
BACKPORT-->

Co-authored-by: Patryk Kopyciński <[email protected]>
  • Loading branch information
kibanamachine and patrykkopycinski authored Feb 1, 2024
1 parent 3457f32 commit 22d5c4d
Show file tree
Hide file tree
Showing 8 changed files with 98 additions and 0 deletions.
4 changes: 4 additions & 0 deletions docs/management/action-types.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ a| <<pagerduty-action-type,PagerDuty>>

| Send an event in PagerDuty.

a| <<sentinelone-action-type,SentinelOne>>

| Send a request to SentinelOne.

a| <<server-log-action-type,ServerLog>>

| Add a message to a Kibana log.
Expand Down
39 changes: 39 additions & 0 deletions docs/management/connectors/action-types/sentinelone.asciidoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
[[sentinelone-action-type]]
== SentinelOne connector
++++
<titleabbrev>SentinelOne</titleabbrev>
++++
:frontmatter-description: Add a connector that can use the SentinelOne API to send actions.
:frontmatter-tags-products: [kibana]
:frontmatter-tags-content-type: [how-to]
:frontmatter-tags-user-goals: [configure]

preview::[]

The SentinelOne connector communicates with SentinelOne Management Console via REST API.

[float]
[[define-sentinelone-ui]]
=== Create connectors in {kib}

You can create connectors in *{stack-manage-app} > {connectors-ui}*. For example:

[role="screenshot"]
image::management/connectors/images/sentinelone-connector.png[SentinelOne connector]
// NOTE: This is an autogenerated screenshot. Do not edit it directly.

[float]
[[sentinelone-connector-configuration]]
==== Connector configuration

SentinelOne connectors have the following configuration properties:

API token:: A SentinelOne API token created by the user.
URL:: The SentinelOne tenant URL. If you are using the <<action-settings,`xpack.actions.allowedHosts`>> setting, make sure the hostname is added to the allowed hosts.


[float]
[[sentinelone-action-parameters]]
=== Test connectors

At this time, you cannot test the SentinelOne connector.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/management/connectors/index.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ include::action-types/teams.asciidoc[leveloffset=+1]
include::action-types/openai.asciidoc[leveloffset=+1]
include::action-types/opsgenie.asciidoc[leveloffset=+1]
include::action-types/pagerduty.asciidoc[leveloffset=+1]
include::action-types/sentinelone.asciidoc[leveloffset=+1]
include::action-types/server-log.asciidoc[leveloffset=+1]
include::action-types/servicenow.asciidoc[leveloffset=+1]
include::action-types/servicenow-sir.asciidoc[leveloffset=+1]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ export enum ExternalServiceSimulator {
XMATTERS = 'xmatters',
TORQ = 'torq',
TINES = 'tines',
SENTINELONE = 'sentinelone',
}

export function getExternalServiceSimulatorPath(service: ExternalServiceSimulator): string {
Expand All @@ -63,6 +64,7 @@ export function getAllExternalServiceSimulatorPaths(): string[] {
allPaths.push(`/api/_${NAME}/${ExternalServiceSimulator.MS_EXCHANGE}/1234567/oauth2/v2.0/token`);
allPaths.push(`/api/_${NAME}/${ExternalServiceSimulator.SERVICENOW}/oauth_token.do`);
allPaths.push(`/api/_${NAME}/${ExternalServiceSimulator.TINES}/webhook/path/secret`);
allPaths.push(`/api/_${NAME}/${ExternalServiceSimulator.SENTINELONE}/web/api/v2.1/`);
return allPaths;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ export default function ({ loadTestFile, getService }: FtrProviderContext) {
loadTestFile(require.resolve('./jira_connector'));
loadTestFile(require.resolve('./opsgenie_connector'));
loadTestFile(require.resolve('./pagerduty_connector'));
loadTestFile(require.resolve('./sentinelone_connector'));
loadTestFile(require.resolve('./server_log_connector'));
loadTestFile(require.resolve('./servicenow_itom_connector'));
loadTestFile(require.resolve('./servicenow_itsm_connector'));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/

import {
ExternalServiceSimulator,
getExternalServiceSimulatorPath,
} from '@kbn/actions-simulators-plugin/server/plugin';
import { FtrProviderContext } from '../../../ftr_provider_context';

export default function ({ getService, getPageObjects }: FtrProviderContext) {
const commonScreenshots = getService('commonScreenshots');
const screenshotDirectories = ['response_ops_docs', 'stack_connectors'];
const pageObjects = getPageObjects(['common', 'header']);
const actions = getService('actions');
const kibanaServer = getService('kibanaServer');
const testSubjects = getService('testSubjects');
let simulatorUrl: string;
let editSimulatorUrl: string;

describe('sentinelone connector', function () {
before(async () => {
simulatorUrl = kibanaServer.resolveUrl(
getExternalServiceSimulatorPath(ExternalServiceSimulator.TINES)
);
editSimulatorUrl = simulatorUrl.replace('/elastic:changeme@', '/');
});

beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
});

it('sentinelone connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('sentinelone');
await testSubjects.setValue('nameInput', 'Sentinelone test connector');
await testSubjects.setValue('config.url-input', editSimulatorUrl);
await testSubjects.setValue('secrets.token-input', 'tester');
await commonScreenshots.takeScreenshot('sentinelone-connector', screenshotDirectories);
await testSubjects.click('create-connector-flyout-save-test-btn');
await pageObjects.common.clearAllToasts();
await commonScreenshots.takeScreenshot('sentinelone-params-test', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
});
}

0 comments on commit 22d5c4d

Please sign in to comment.