Commit graph

30206 commits

Author SHA1 Message Date
Rudolf Meijering d10d6286ee
[skip-ci] Core conventions (#52397)
* Table of contents for conventions

* Add Core Conventions

* Add Tests and mocks section

* Update src/core/CORE_CONVENTIONS.md

Typo

Co-Authored-By: Josh Dover <me@joshdover.com>

* Add pro's/con's for alternatives to private fields support

Co-authored-by: Josh Dover <me@joshdover.com>
2020-01-15 14:29:50 +01:00
Dima Arnautov d082c03e9d
[ML] Calculate model memory limit API integration tests (#54557)
* [ML] calculate model memory limit api integration tests

* [ML] extra test cases
2020-01-15 13:42:35 +01:00
CJ Cenizal 33713cbdc0
Skip flakey index template component integration tests. (#54878) 2020-01-15 02:28:38 -08:00
Matt Bargar f77b36206a Add label and icon to nested fields in the doc table (#54199)
* Apply label and icon to nested fields in the doc table

* Include nested fields in the index pattern so we can identify them in the Discover UI

* use color recommended by design

* Fix unit tests

* Update api integration test

* Fix test comment

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Tim Roes <mail@timroes.de>
2020-01-15 10:56:36 +01:00
Joe Reuter b9a0f958bc
Reverse dependency of home plugin and apm/ml/cloud (#52883) 2020-01-15 10:10:12 +01:00
Frank Hassanabad 9c43e3ad93
[SIEM][Detection Engine] Order JSON keys, fix scripts, update pre-packaged rules
## Summary

* Updates pre-packaged rules
* Adds rule_id duplicate check into the linter
* Updates the scripts for converting saved objects to rules
* Adds a script for re-generating the `index.ts` for the rules

### Checklist

Use ~~strikethroughs~~ to remove checklist items you don't feel are applicable to this PR.

~~- [ ] This was checked for cross-browser compatibility, [including a check against IE11](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility)~~

~~- [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/master/packages/kbn-i18n/README.md)~~

~~- [ ] [Documentation](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#writing-documentation) was added for features that require explanation or tutorials~~

- [x] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios

~~- [ ] This was checked for [keyboard-only and screenreader accessibility](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Accessibility_testing_checklist)~~

### For maintainers

~~- [ ] This was checked for breaking API changes and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~~

- [x] This includes a feature addition or change that requires a release note and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)
2020-01-15 00:55:55 -07:00
spalger 94a409964b update invalid snapshot 2020-01-14 23:26:20 -07:00
Patrick Mueller d3a3cefc73
add readme note about alerting / manage_api_key cluster privilege (#54639)
partially resolves https://github.com/elastic/kibana/issues/54525
2020-01-14 23:47:55 -05:00
Andrew Goldstein 56ff721867
[SIEM] New Overview Page (#54783)
## [SIEM] Overview Page "1.5"

A redesigned SIEM Overview page that includes `Recent timelines`, a `Security news` feed, visualizations, and rolled-up event counts

![overview-day](https://user-images.githubusercontent.com/4459398/72396016-90f53600-36f8-11ea-9b41-6d54d09de589.png)

![overview-night](https://user-images.githubusercontent.com/4459398/72394575-fb57a780-36f3-11ea-868e-8fcd2c5c4543.png)

### Overview enhancements
- Added the global Search bar and Date picker to the Overview page
- New `Recent timelines` widget affords quick access to favorite and recently modified timelines
- New `Security news` widget
- New Kibana advanced settings (toggle switch) for enabling or disabling the news widget and configuring the news URL
![news-settings](https://user-images.githubusercontent.com/4459398/72362776-fd4c4700-36b0-11ea-805b-3c7353f2c1cd.png)
- New `Events count by dataset` widget
- Updated the `Host Events` and `Network Events` widgets to integrate with the Search bar and date picker input
- Enhanced the `Host Events` and `Network Events` widgets to use an accordion paradigm that summarizes stats by source (e.g. `Auditbeat`, `Endgame`)
- Enhanced the `Host Events` and `Network Events` widgets to visualize relative percentages of events collected as progress bars
- New `Alerts count by category` widget
- New `Signals count by MITRE ATT&CK™ category` widget
- New `View events`, `View alerts`, and `View signals` navigation buttons for their respective visualizations


### FTUE enhancements
- FTUE "no data" view design refresh
![ftue](https://user-images.githubusercontent.com/4459398/72361771-43a0a680-36af-11ea-969f-5872ac4a01a1.png)
- When the FTUE "no data" page is displayed, hide all global navigation links (i.e. `Hosts`, `Network`, `Detection engine`), such that only `Overview` appears in the global nav
- App Help popover design refresh
![help](https://user-images.githubusercontent.com/4459398/72362132-d80b0900-36af-11ea-9b58-1fd3b923b7c8.png)
- Removed the `Beta` badge and `Security Information & Event Management with the Elastic Stack` from the Overview header

- Tested in Chrome `79.0.3945.117`, Firefox `72.0.1`, and Safari `13.0.4`

## Known issues

- The `siem:newsFeedUrl` advanced setting is defaulted to `https://feeds.elastic.co/kibana`
- The `Signals count by MITRE ATT&CK™ category` visualization does not display all categories
- The `Signals count by MITRE ATT&CK™ category` visualization may require a different index pattern
- `EuiButtonGroup` throwing a `Can't perform a React state update on an unmounted component` warning when switching from the Overview tab

https://github.com/elastic/siem-team/issues/484
2020-01-14 21:03:57 -07:00
Shahzad 1ae2d00ab6 [Uptime] Feature/refactor context initialization (#54494)
* update refactor

* refactor context initilization

* rename values

* fix tests

Co-authored-by: Justin Kambic <justin.kambic@elastic.co>
2020-01-14 22:51:17 -05:00
Greg Thompson bd9d67ccc0
Upgrade EUI to v18.2.0 (#54786)
* 18.2.0

* ts update

* Updated `euiColorVis0`

* Update `euiColorVis1`

* Updating `euiColorVis2`

* Updated `euiColorVis3`

* Updated the rest

* Updated hard-coded viz palette hexes to latest

* src snapshot updates

* x-pack test updates

* mock jest fn

* Updated two vegalite visualization screenshots

Co-authored-by: Caroline Horn <549577+cchaos@users.noreply.github.com>
Co-authored-by: Chandler Prall <chandler.prall@gmail.com>
2020-01-14 20:19:35 -06:00
Xavier Mouligneau 26bc76520e
[SIEM] [Detection engine] from signals to timeline (#54769)
* remove batch action on signals

* fix callback dependency bug

* open timeline in signals table + add a way to pick between signal and raw events in timeline

* add status on all rules

* fix i18n

* review I

* fix test
2020-01-14 20:14:18 -05:00
Jean-Louis Leysens dfce824e8e [Index Management] Add Mappings Editor to Index Template Wizard (#47562) 2020-01-14 17:09:29 -08:00
Frank Hassanabad b36ec40458
[SIEM][Detection Engine] Removes deprecated filter from mapping
## Summary

Removes a one-liner deprecated filter from the mapping. We no longer use or need it since we only use filters now.

### Checklist

Use ~~strikethroughs~~ to remove checklist items you don't feel are applicable to this PR.

~~- [ ] This was checked for cross-browser compatibility, [including a check against IE11](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility)~~

~~- [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/master/packages/kbn-i18n/README.md)~~

~~- [ ] [Documentation](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#writing-documentation) was added for features that require explanation or tutorials~~

~~- [ ] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios~~

~~- [ ] This was checked for [keyboard-only and screenreader accessibility](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Accessibility_testing_checklist)~~

### For maintainers

~~- [ ] This was checked for breaking API changes and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~~

- [x] This includes a feature addition or change that requires a release note and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)
2020-01-14 18:06:26 -07:00
Thomas Neirynck 0ff668ba46
[Maps] Add categorical styling (#54408)
This allows users to style fields by category. Users can either uses one of default color palettes or specify a custom ramp.
2020-01-14 19:30:21 -05:00
Nick Peihl 2e7b35e232
Add mapbox-gl-rtl-text library (#54842)
This adds support for RTL languages (Arabic and Hebrew) in the basemaps.
Without this library the RTL languages appear backwards.
2020-01-14 16:30:00 -08:00
Garrett Spong b4e42d52c0
[SIEM][Detection Engine] Adds actions to Rule Details (#54828)
## Summary

This PR adds the following actions to the `Rule Details` page via the `RuleActionsOverflow` component (which is permission-aware):
* Duplicate
* Export
* Delete 

Additional fixes include:
* Fixes duplication action (recent regression as part of status update additions)
* i18n of `Duplicate` postfix when duplicating rules
* Adds success toast when duplication is a success
* Enabled `Edit Index Patterns` batch action
* Removes unused `Run Rule Manually` action

Rule Details Actions:
![image](https://user-images.githubusercontent.com/2946766/72385375-9c3a6880-36dc-11ea-8249-4ae92eb72dd1.png)

Edit Index Patterns Batch Action:
![image](https://user-images.githubusercontent.com/2946766/72385468-c5f38f80-36dc-11ea-93c8-b70e4982f01a.png)



### Checklist

Use ~~strikethroughs~~ to remove checklist items you don't feel are applicable to this PR.

- [X] This was checked for cross-browser compatibility, [including a check against IE11](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility)
- [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/master/packages/kbn-i18n/README.md)
- [ ] ~[Documentation](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#writing-documentation) was added for features that require explanation or tutorials~
- [x] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios
- [ ] ~This was checked for [keyboard-only and screenreader accessibility](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Accessibility_testing_checklist)~

### For maintainers

- [ ] ~This was checked for breaking API changes and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~
- [ ] ~This includes a feature addition or change that requires a release note and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~
2020-01-14 17:05:49 -07:00
Andrew Cholakian 6cac02e6c1
Lexicographically sort location tags (#54832)
Sort location tags lexicographically, fixes skipped test by providing a stable, non-time-based sort order
2020-01-14 17:29:49 -06:00
Nathan Reese 75d6842a71
[Maps] expand extent filter to tile boundaries (#54276)
* [Maps] expand extent filter to tile boundaries

* fix functional test

* simplify expandToTileBoundaries

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-14 18:28:47 -05:00
Nick Peihl 6c9e4ec762
[Maps] Use v7.6 Elastic Maps Service API (#54399)
* Use v7.6 Elastic Maps Service API
2020-01-14 15:10:26 -08:00
gchaps be71ec4029
[DOCS] Adds monitoring setting (#54819) 2020-01-14 14:52:12 -08:00
Xavier Mouligneau daeddfdd78
add status to detail page with failure history (#54812) 2020-01-14 17:22:18 -05:00
Brian Seeders c3430fefd9
Skip failing uptime test suite 2020-01-14 17:05:50 -05:00
Nathan L Smith 52709b8deb
[APM] Service map popover (#53524)
Add a popover when clicking on service map nodes and an endpoint to fetch metrics to show in the popover.

Closes #52869.
2020-01-14 15:35:52 -06:00
Wylie Conlon 4869e02b62
[Lens] Show fields when using indexpattern without time field (#54804) 2020-01-14 16:31:44 -05:00
Poff Poffenberger 60f647572e
[Canvas] Adds functional test for Canvas custom elements (#52920)
* Adds functional test for Canvas custom elements

feedback cleanup

* Opening up Canvas app first

* Add skip firefox tag to custom element test
2020-01-14 21:29:40 +00:00
Frank Hassanabad f2615c29ad
[SIEM][Detection Engine] Removes deprecated keys from configuration
## Summary

Removes deprecated keys from configuration since the backend gives out where the index is located and it is based on spaces.

### Checklist

Use ~~strikethroughs~~ to remove checklist items you don't feel are applicable to this PR.

~~- [ ] This was checked for cross-browser compatibility, [including a check against IE11](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility)~~

~~- [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/master/packages/kbn-i18n/README.md)~~

~~- [ ] [Documentation](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#writing-documentation) was added for features that require explanation or tutorials~~

~~- [ ] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios~~

~~- [ ] This was checked for [keyboard-only and screenreader accessibility](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Accessibility_testing_checklist)~~

### For maintainers

~~- [ ] This was checked for breaking API changes and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~~

~~- [ ] This includes a feature addition or change that requires a release note and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~~
2020-01-14 13:58:42 -07:00
Dario Gieselaar b91b123206
[APM] Make sure errors per minute are reported correctly (#54751)
Closes #54350.
2020-01-14 21:34:01 +01:00
Shahzad f547b76312
[Uptime] Details page map handle geo information missing (#54483)
* update API

* update query

* hide layer control and added loc tags

* update test

* remove unused comment

* update API

* remove capitalization

* style fix

* update types

* added location status number on details page

* useref instead of createRef

* update interface

* update import

* removed redundant file

* fix header for empty data

* refactor for most recent check

* remove redundant code

* remone unused translation

* update status bar

* update styling

* update snaps

* added API tests

* fix types

* fixing integration tests and a typo

* remove unused translations

* update tests

* fixed PR feedback

* update feedback

* update messaging

* update snap

* added timestamp in front of tags

* update missing

* update locs

* update geo info missing

* use formatted message

* update snaps

* updated types

* update test

* fix test

* update tests

* update more skipped tests

* update test

* update warning message

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-14 21:27:40 +01:00
Poff Poffenberger 2ac0c91c7a
[Canvas] Fix asset image preview (#54659)
* fix image preview

* Center image in asset box

* Updating snapshot

Co-authored-by: Ryan Keairns <rkeairns@chef.io>
2020-01-14 20:22:45 +00:00
Robert Austin 387da985ee
Resolver component w/ sample data (#53619)
Resolver is a map. It shows processes that ran on a computer. The processes are drawn as nodes and lines connect processes with their parents.

Resolver is not yet implemented in Kibana. This PR adds a 'map' type UX. The user can click and drag to pan the map and zoom using trackpad pinching (or ctrl and mousewheel.)

There is no code providing actual data. Sample data is included. The sample data is used to draw a map. The fundamental info needed is:

process names
the parent of a process
With this info we can topologically lay out the processes. The sample data isn't yet in a realistic format. We'll be fixing that soon.

Related issue: elastic/endpoint-app-team#30
2020-01-14 14:56:16 -05:00
Tim Sullivan c622a2ffa2
[Reporting/Mocha] Fix and unskip a test (#54598) 2020-01-14 12:42:33 -07:00
Felix Stürmer 8d00dc64d7
[Logs UI] Disable ML job setup form while setup is pending (#54705)
This disables the configuration for in the log rate and categories setup screens while the setup process is ongoing.
2020-01-14 20:16:46 +01:00
Angela Chuang f6890d4416
[SIEM] Histogram enhancement (#54544)
* generic histogram container

* generic histogram container

* rename params

* fix inspect

* fix update with timerange

* clean up props

* send stackByField to server side

* fix inspect button

* helper node xavier

* fix DNS histogram

* fix DNS query params

* move utils for fetch data into containers

* cleanup graphql template on client side

* rename grqphql data

* i18n

* fix type

* fix i18n

* fix i18n

* fix subtitle

* fix subtitle

* fix i18n

* fix for reviews

* fix types

* remove unused test

* fix integration

Co-authored-by: Xavier Mouligneau <189600+XavierM@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-15 03:15:51 +08:00
Dima Arnautov 1b076171f3
[ML] Data Visualizer redesign (#54358)
* [ML] change basic page structure

* [ML] adjust search panel

* [ML] adjust fields_panel.tsx

* [ML] card icon styles

* [ML] styles

* [ML] adjust actions_panel.tsx

* Update styling of panels, spacing

* [ML] change basic page structure

* [ML] adjust search panel

* [ML] adjust fields_panel.tsx

* [ML] card icon styles

* [ML] styles

* [ML] adjust actions_panel.tsx

* [ML] fix i18n

* [ML] fix styles

* [ML] adjust top values styles

* [ML] remove conflicts artifacts

* Use EuiBorderColor

* [ML] fix i18n

* [ML] fix i18n

* [ML] fix counters

* [ML] fixed width for sample size select

* [ML] fix layout for file viz

* [ML] fix empty cards rendering

* Update text styling and spacing

* [ML] fix field stats card

* [ML] fix counter for showAllFields

* [ML] reset title for the badge

* [ML] boolean_content.tsx with the bar chart

* [ML] fix counters

Co-authored-by: DeFazio <michael.defazio@elastic.co>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-14 19:52:58 +01:00
Tiago Costa 5738855389
fix(NA): recursive delete function on watch cache directory (#54758) 2020-01-14 18:44:24 +00:00
Spencer 4456d4d4b8
[kbn/ui-shared-deps] include polyfills, required by some deps (#54667)
* [kbn/ui-shared-deps] include polyfills, required by some deps

* remove unnecessary dep

* replace abort-controller for server side use

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-14 11:35:35 -07:00
Chandler Prall 6bed80bbd8
Upgraded EUI to 18.0.0 (#54042)
* Upgraded EUI to 18.0.0

* Fix breaks from `palette._.colors` changes

* snapshots

* Updated hard coded hex color codes in tests, fixed TS errors

* Updated a functional test's selector; added (BSD-3-Clause AND Apache-2.0) to license checker whitelist

* Functional test selector update

* Updated vega browser-ci tests for palette changes

* rebased on master

* One more location for EUI package number update and yarn lock

* Fixed lurking [but introduced] TypeScript logic bug

* Swap a prop definition for the same value but tied closer to its source

Co-authored-by: Caroline Horn <549577+cchaos@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-14 11:23:43 -07:00
Tiago Costa fdf51a5f8b
Splits dll in chunks (#54600)
* feat(NA): implement dll split feature

* chore(NA): improve logic to split dlls

* feat(NA): support multiple manifests in the clean dll task

* fix(NA): patch clean dll task to support multiple manifest files

* feat(NA): shuffle seed before split dll in chunks

* chore(NA): correctly load chunks into the templates

* chore(NA): correctly load chunks on karma tests

* docs(NA): add explanation why we need a single runtime for dll chunks

* teste(NA): fix jest tests
2020-01-14 18:06:53 +00:00
Dario Gieselaar 8d57df0fe6
[APM]: Fix render error when license has not been loaded (#54718) 2020-01-14 18:57:21 +01:00
Maja Grubic 46b34db465
[Dashboard] decode url params, so they are not encoded twice (#54738)
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-14 17:54:53 +00:00
James Gowdy b598c9dc7f
[ML] Categorization jobs improvements (#54579)
* chunking token examples

* disabling bucket span estimator

* passing sample size to client

* better handing of token errors

* changes based on review
2020-01-14 17:53:52 +00:00
patrykkopycinski 14be0ee8f4
Bump to stable styled-components@5 (#54698) 2020-01-14 18:53:20 +01:00
Jean-Louis Leysens e4c73ffbbb
[Console][Chore] Update spec (#54564)
* Update spec conversion to exclude deprecated completions

* Update OSS spec

* Remove console.log

* Add skip deprecated endpoints option to script

* Actually, remove skip deprecated flag for now. Just do not include deprecated. See this issue: https://github.com/elastic/kibana/issues/48375

* x-pack: Delete data from transform completions

* Update to existing x-pack autocomplete extensions

* Added ml explain with overrides

* Added put trained model with doc override

* Added SLM get_status, start and stop with URL param overrides where needed

* Add data completion for clear scroll

* Remove include_type_name flag from indices and delete create.json override

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-14 18:47:13 +01:00
Joe Reuter 97d460e051
Fix safari layout issue in Visualize, Graph and Lens (#54694) 2020-01-14 18:40:12 +01:00
Chris Davies 79054afb5a [Lens] Add support for scripted fields and aliases to the existence API (#54064)
* Add support for scripted fields and
default index pattern

* Add scripted fields and aliases to existence API

* Fix TypeScript errors.

* Fix mappings parsing

* Default to the index pattern timeFieldName

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-14 12:39:50 -05:00
Chris Davies 8c0440f29d [Lens] Add clear layer feature (#53627)
* [Lens] Add clear layer feature

* Move clear / remove layer out of the context menu

* Address code review comments

* Remove xpack.lens.xyChart.deleteLayer translation

* Get rid of unused Lens translations

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-14 12:06:51 -05:00
Joe Reuter 8c878bcaa8
add graph sample data (#54558) 2020-01-14 18:02:49 +01:00
Tim Schnell b298dd4c20
fixing color and toggle accessibility (#54661)
* fixing color and toggle accessibility

* updating snapshots

* fixing more snapshots

* fixing toggle console warning
2020-01-14 10:53:27 -06:00
Tre' Seymour 8cb0152b6f Merge branch 'master' of github.com:elastic/kibana 2020-01-14 09:39:22 -07:00