Skip to content

Commit 453d034

Browse files
Merge branch 'master' into sec-team-1105/endpoint-details-activity-log
2 parents 6a2cace + 8e48d48 commit 453d034

266 files changed

Lines changed: 7236 additions & 2434 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@
340340
#CC# /x-pack/plugins/security_solution/ @elastic/security-solution
341341

342342
# Security Solution sub teams
343-
/x-pack/plugins/case @elastic/security-threat-hunting
343+
/x-pack/plugins/cases @elastic/security-threat-hunting
344344
/x-pack/plugins/timelines @elastic/security-threat-hunting
345345
/x-pack/test/case_api_integration @elastic/security-threat-hunting
346346
/x-pack/plugins/lists @elastic/security-detections-response

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
Summarize your PR. If it involves visual changes include a screenshot or gif.
44

5+
56
### Checklist
67

78
Delete any items that are not applicable to this PR.
@@ -15,6 +16,25 @@ Delete any items that are not applicable to this PR.
1516
- [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
1617
- [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
1718

19+
20+
### Risk Matrix
21+
22+
Delete this section if it is not applicable to this PR.
23+
24+
Before closing this PR, invite QA, stakeholders, and other developers to
25+
identify risks that should be tested prior to the change/feature release.
26+
27+
When forming the risk matrix, consider some of the following examples and how
28+
they may potentially impact the change:
29+
30+
| Risk | Probability | Severity | Mitigation/Notes |
31+
|---------------------------|-------------|----------|-------------------------|
32+
| Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. |
33+
| Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. |
34+
| Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. |
35+
| [See more potential risk examples](../RISK_MATRIX.mdx) |
36+
37+
1838
### For maintainers
1939

2040
- [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

RISK_MATRIX.mdx

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Risk consideration
2+
3+
When merging a new feature of considerable size or modifying an existing one,
4+
consider adding a *Risk Matrix* section to your PR in collaboration with other
5+
developers on your team and the QA team.
6+
7+
Below are some general themes to consider for the *Risk Matrix*. (Feel free to
8+
add to this list.)
9+
10+
11+
## General risks
12+
13+
- What happens when your feature is used in a non-default space or a custom
14+
space?
15+
- What happens when there are multiple Kibana nodes using the same Elasticsearch
16+
cluster?
17+
- What happens when a plugin you depend on is disabled?
18+
- What happens when a feature you depend on is disabled?
19+
- Is your change working correctly regardless of `kibana.yml` configuration or
20+
UI Setting configuration? (For example, does it support both
21+
`state:storeInSessionStorage` UI setting states?)
22+
- What happens when a third party integration you depend on is not responding?
23+
- How is authentication handled with third party services?
24+
- Does the feature work in Elastic Cloud?
25+
- Does the feature create a setting that needs to be exposed, or configured
26+
differently than the default, on the Elastic Cloud?
27+
- Is there a significant performance impact that may affect Cloud Kibana
28+
instances?
29+
- Does your feature need to be aware of running in a container?
30+
- Does the feature Work with security disabled, or fails gracefully?
31+
- Are there performance risks associated with your feature? Does it potentially
32+
access or create: (1) many fields; (2) many indices; (3) lots of data;
33+
(4) lots of saved objects; (5) large saved objects.
34+
- Could this cause memory to leak in either the browser or server?
35+
- Will your feature still work if Kibana is run behind a reverse proxy?
36+
- Does your feature affect other plugins?
37+
- If you write to the file system, what happens if Kibana node goes down? What
38+
happens if there are multiple Kibana nodes?
39+
- Are migrations handled gracefully? Does the feature affect old indices or
40+
saved objects?
41+
- Are you using any technologies, protocols, techniques, conventions, libraries,
42+
NPM modules, etc. that may be new or unprecedented in Kibana?
43+
44+
45+
## Security risks
46+
47+
Check to ensure that best practices are used to mitigate common vulnerabilities:
48+
49+
- Cross-site scripting (XSS)
50+
- Cross-site request forgery (CSRF)
51+
- Remote-code execution (RCE)
52+
- Server-side request forgery (SSRF)
53+
- Prototype pollution
54+
- Information disclosure
55+
- Tabnabbing
56+
57+
In addition to these risks, in general, server-side input validation should be
58+
implemented as strictly as possible. Extra care should be taken when user input
59+
is used to construct URLs or data structures; this is a common source of
60+
injection attacks and other vulnerabilities. For more information on all of
61+
these topics, see [Security best practices][security-best-practices].
62+
63+
[security-best-practices]: https://www.elastic.co/guide/en/kibana/master/security-best-practices.html

docs/developer/getting-started/index.asciidoc

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,14 @@ In order to support Windows development we currently require you to use one of t
1414

1515
As well as installing https://www.microsoft.com/en-us/download/details.aspx?id=48145[Visual C++ Redistributable for Visual Studio 2015].
1616

17+
In addition we also require you to do the following:
18+
19+
- Install https://www.microsoft.com/en-us/download/details.aspx?id=48145[Visual C++ Redistributable for Visual Studio 2015]
20+
- Enable the https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development[Windows Developer Mode]
21+
- Enable https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-8dot3name[8.3 filename support] by running the following command in a windows command prompt with admin rights `fsutil 8dot3name set 0`
22+
1723
Before running the steps listed below, please make sure you have installed everything
18-
that we require and listed above and that you are running the mentioned commands
19-
through Git bash or WSL.
24+
that we require and listed above and that you are running all the commands from now on through Git bash or WSL.
2025

2126
[discrete]
2227
[[get-kibana-code]]
@@ -92,6 +97,10 @@ may need to run:
9297
yarn kbn clean
9398
----
9499

100+
NOTE: Running this command is only necessary in rare circumstance where you need to recover
101+
a consistent state when problems arise. If you need to run this command often, complete
102+
this form to provide feedback: https://ela.st/yarn-kbn-clean
103+
95104
If you have failures during `yarn kbn bootstrap` you may have some
96105
corrupted packages in your yarn cache which you can clean with:
97106

docs/development/core/server/kibana-plugin-core-server.deprecationsdetails.correctiveactions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ correctiveActions: {
1515
[key: string]: any;
1616
};
1717
};
18-
manualSteps?: string[];
18+
manualSteps: string[];
1919
};
2020
```

docs/development/core/server/kibana-plugin-core-server.deprecationsdetails.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export interface DeprecationsDetails
1414

1515
| Property | Type | Description |
1616
| --- | --- | --- |
17-
| [correctiveActions](./kibana-plugin-core-server.deprecationsdetails.correctiveactions.md) | <code>{</code><br/><code> api?: {</code><br/><code> path: string;</code><br/><code> method: 'POST' &#124; 'PUT';</code><br/><code> body?: {</code><br/><code> [key: string]: any;</code><br/><code> };</code><br/><code> };</code><br/><code> manualSteps?: string[];</code><br/><code> }</code> | |
17+
| [correctiveActions](./kibana-plugin-core-server.deprecationsdetails.correctiveactions.md) | <code>{</code><br/><code> api?: {</code><br/><code> path: string;</code><br/><code> method: 'POST' &#124; 'PUT';</code><br/><code> body?: {</code><br/><code> [key: string]: any;</code><br/><code> };</code><br/><code> };</code><br/><code> manualSteps: string[];</code><br/><code> }</code> | |
1818
| [deprecationType](./kibana-plugin-core-server.deprecationsdetails.deprecationtype.md) | <code>'config' &#124; 'feature'</code> | (optional) Used to identify between different deprecation types. Example use case: in Upgrade Assistant, we may want to allow the user to sort by deprecation type or show each type in a separate tab.<!-- -->Feel free to add new types if necessary. Predefined types are necessary to reduce having similar definitions with different keywords across kibana deprecations. |
1919
| [documentationUrl](./kibana-plugin-core-server.deprecationsdetails.documentationurl.md) | <code>string</code> | |
2020
| [level](./kibana-plugin-core-server.deprecationsdetails.level.md) | <code>'warning' &#124; 'critical' &#124; 'fetch_error'</code> | levels: - warning: will not break deployment upon upgrade - critical: needs to be addressed before upgrade. - fetch\_error: Deprecations service failed to grab the deprecation details for the domain. |
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [AggConfig](./kibana-plugin-plugins-data-public.aggconfig.md) &gt; [getTimeShift](./kibana-plugin-plugins-data-public.aggconfig.gettimeshift.md)
4+
5+
## AggConfig.getTimeShift() method
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
getTimeShift(): undefined | moment.Duration;
11+
```
12+
<b>Returns:</b>
13+
14+
`undefined | moment.Duration`
15+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [AggConfig](./kibana-plugin-plugins-data-public.aggconfig.md) &gt; [hasTimeShift](./kibana-plugin-plugins-data-public.aggconfig.hastimeshift.md)
4+
5+
## AggConfig.hasTimeShift() method
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
hasTimeShift(): boolean;
11+
```
12+
<b>Returns:</b>
13+
14+
`boolean`
15+

docs/development/plugins/data/public/kibana-plugin-plugins-data-public.aggconfig.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ export declare class AggConfig
4646
| [getRequestAggs()](./kibana-plugin-plugins-data-public.aggconfig.getrequestaggs.md) | | |
4747
| [getResponseAggs()](./kibana-plugin-plugins-data-public.aggconfig.getresponseaggs.md) | | |
4848
| [getTimeRange()](./kibana-plugin-plugins-data-public.aggconfig.gettimerange.md) | | |
49+
| [getTimeShift()](./kibana-plugin-plugins-data-public.aggconfig.gettimeshift.md) | | |
4950
| [getValue(bucket)](./kibana-plugin-plugins-data-public.aggconfig.getvalue.md) | | |
5051
| [getValueBucketPath()](./kibana-plugin-plugins-data-public.aggconfig.getvaluebucketpath.md) | | Returns the bucket path containing the main value the agg will produce (e.g. for sum of bytes it will point to the sum, for median it will point to the 50 percentile in the percentile multi value bucket) |
52+
| [hasTimeShift()](./kibana-plugin-plugins-data-public.aggconfig.hastimeshift.md) | | |
5153
| [isFilterable()](./kibana-plugin-plugins-data-public.aggconfig.isfilterable.md) | | |
5254
| [makeLabel(percentageMode)](./kibana-plugin-plugins-data-public.aggconfig.makelabel.md) | | |
5355
| [nextId(list)](./kibana-plugin-plugins-data-public.aggconfig.nextid.md) | <code>static</code> | Calculate the next id based on the ids in this list {<!-- -->array<!-- -->} list - a list of objects with id properties |
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [AggConfigs](./kibana-plugin-plugins-data-public.aggconfigs.md) &gt; [forceNow](./kibana-plugin-plugins-data-public.aggconfigs.forcenow.md)
4+
5+
## AggConfigs.forceNow property
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
forceNow?: Date;
11+
```

0 commit comments

Comments
 (0)