diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml new file mode 100644 index 00000000..b6f0fae2 --- /dev/null +++ b/.github/workflows/link-checker.yml @@ -0,0 +1,23 @@ +name: Link Checker +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + linkchecker: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: lychee Link Checker + id: lychee + uses: lycheeverse/lychee-action@master + with: + args: --accept=200,403,429 "**/*.md" "**/*.txt" + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + - name: Fail if there were link errors + run: exit ${{ steps.lychee.outputs.exit_code }} diff --git a/ADMINS.md b/ADMINS.md new file mode 100644 index 00000000..bcdc8f2a --- /dev/null +++ b/ADMINS.md @@ -0,0 +1,7 @@ +## Admins + +| Admin | GitHub ID | Affiliation | +| --------------- | --------------------------------------- | ----------- | +| Henri Yandell | [hyandell](https://github.com/hyandell) | Amazon | + +[This document](https://github.com/opensearch-project/.github/blob/main/ADMINS.md) explains what admins do in this repo, and how they should be doing it. If you're interested in becoming a maintainer, see [MAINTAINERS](MAINTAINERS.md). If you're interested in contributing, see [CONTRIBUTING](CONTRIBUTING.md). diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 30d38c01..fe4d6207 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -1,5 +1,3 @@ -# Dashboards Reports Maintainers - ## Maintainers | Maintainer | GitHub ID | Affiliation | |------------------------|---------------------------------------------------|-------------| @@ -7,3 +5,5 @@ | David Cui | [davidcui-amzn](https://github.com/davidcui-amzn) | Amazon | | Joshua Li | [joshuali925](https://github.com/joshuali925) | Amazon | | Zhongnan Su | [zhongnansu](https://github.com/zhongnansu) | Amazon | + +[This document](https://github.com/opensearch-project/.github/blob/main/MAINTAINERS.md) explains what maintainers do in this repo, and how they should be doing it. If you're interested in contributing, see [CONTRIBUTING](CONTRIBUTING.md). diff --git a/README.md b/README.md index d7627eb8..d70f59aa 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,39 @@ [![OpenSearch Dashboards Reports CI](https://github.com/opensearch-project/dashboards-reports/workflows/Test%20and%20Build%20OpenSearch%20Dashboards%20Reports/badge.svg)](https://github.com/opensearch-project/dashboards-reports/actions?query=workflow%3A%22Test+and+Build+OpenSearch+Dashboards+Reports%22) [![Reports Scheduler CI](https://github.com/opensearch-project/dashboards-reports/workflows/Test%20and%20Build%20Reports%20Scheduler/badge.svg)](https://github.com/opensearch-project/dashboards-reports/actions?query=workflow%3A%22Test+and+Build+Reports+Scheduler%22) -[![codecov](https://codecov.io/gh/opensearch-project/dashboards-reports/branch/dev/graph/badge.svg?token=FBVYQSZD3B)](https://codecov.io/gh/opensearch-project/dashboards-reports) -[![Documentation](https://img.shields.io/badge/documentation-blue.svg)](https://docs-beta.opensearch.org/docs/opensearch-dashboards/reporting/) +[![codecov](https://codecov.io/gh/opensearch-project/dashboards-reports/branch/main/graph/badge.svg?token=YOX0XBW2NA)](https://codecov.io/gh/opensearch-project/dashboards-reports) +[![Documentation](https://img.shields.io/badge/documentation-blue.svg)](https://docs-beta.opensearch.org/dashboards/reporting/) ![PRs welcome!](https://img.shields.io/badge/PRs-welcome!-success) + + +- [OpenSearch Dashboards Reports](#opensearch-dashboards-reports) +- [Contributing](#contributing) +- [Setup](#setup-&-build) +- [Notifications Integration](#notifications-integration) +- [Troubleshooting](#troubleshooting) +- [Code of Conduct](#code-of-conduct) +- [Security](#security) +- [License](#license) +- [Copyright](#copyright) + # OpenSearch Dashboards Reports OpenSearch Dashboards Reports allows ‘Report Owner’ (engineers, including but not limited to developers, DevOps, IT Engineer, and IT admin) export and share reports from OpenSearch Dashboards dashboards, saved search, alerts and visualizations. It helps automate the process of scheduling reports on an on-demand or a periodical basis (on cron schedules as well). Further, it also automates the process of exporting and sharing reports triggered for various alerts. The feature is present in the Dashboard, Discover, and Visualization tabs. We are currently working on integrating Dashboards Reports with Notifications to enable sharing functionality. After the support is introduced, scheduled reports can be sent to (shared with) self or various stakeholders within the organization. These stakeholders include but are not limited to, executives, managers, engineers (developers, DevOps, IT Engineer) in the form of pdf, hyperlinks, csv, excel via various channels such as email, Slack, and Amazon Chime. However, in order to export, schedule and share reports, report owners should have the necessary permissions as defined under Roles and Privileges. -# Request for Comments ( RFC ) +## Contributing -Please add your feature requests here [ New Requests ](https://github.com/opensearch-project/dashboards-reports/issues) and view project progress here [RFCs](https://github.com/opensearch-project/dashboards-reports/projects/1). +We welcome you to get involved in development, documentation, testing the OpenSearch Dashboards reports plugin. See our [CONTRIBUTING.md](./CONTRIBUTING.md) and join in. ## Setup & Build Complete OpenSearch Dashboards Report feature is composed of 2 plugins. Refer to README in each plugin folder for more details. - [OpenSearch Dashboards reports plugin](./dashboards-reports/README.md) -- [Reports scheduler ES plugin](./reports-scheduler/README.md)(TODO) +- [OpenSearch Reports scheduler plugin](./reports-scheduler/README.md)(TODO) + +## Notifications Integration + +OpenSearch Dashboards Reports integration with [Notifications](https://github.com/opensearch-project/notifications) is currently in progress, tracking for the 8/30 OpenSearch 1.1 release. ## Troubleshooting @@ -28,20 +44,11 @@ There could be two reasons for this problem 1. You are not having the correct version of headless-chrome matching to the OS that your OpenSearch Dashboards is running. Different versions of headless-chrome can be found [here](https://github.com/opensearch-project/dashboards-reports/releases/tag/chromium-1.12.0.0) 2. Missing additional dependencies. Please refer to [additional dependencies section](./dashboards-reports/rendering-engine/headless-chrome/README.md#additional-libaries) to install required dependencies according to your operating system. - -## Contributing to OpenSearch Dashboards reports - -We welcome you to get involved in development, documentation, testing the OpenSearch Dashboards reports plugin. See our [CONTRIBUTING.md](./CONTRIBUTING.md) and join in. - -## Notifications Integration - -OpenSearch Dashboards Reports integration with [Notifications](https://github.com/opensearch-project/notifications) is currently in progress, tracking for the 8/30 OpenSearch 1.1 release. - ## Code of Conduct -This project has adopted an [Open Source Code of Conduct](https://opensearch.org/codeofconduct.html). +This project has adopted the [Amazon Open Source Code of Conduct](CODE_OF_CONDUCT.md). For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq), or contact [opensource-codeofconduct@amazon.com](mailto:opensource-codeofconduct@amazon.com) with any additional questions or comments. -## Security issue notifications +## Security If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public GitHub issue. @@ -51,4 +58,4 @@ See the [LICENSE](./LICENSE.txt) file for our project's licensing. We will ask y ## Copyright -Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. +Copyright 2020-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/RELEASING.md b/RELEASING.md new file mode 100644 index 00000000..baf47475 --- /dev/null +++ b/RELEASING.md @@ -0,0 +1 @@ +This project follows [OpenSearch branching, labelling, and releasing](https://github.com/opensearch-project/.github/blob/main/RELEASING.md). \ No newline at end of file diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..0b85ca04 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,3 @@ +## Reporting a Vulnerability + +If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/) or directly via email to aws-security@amazon.com. Please do **not** create a public GitHub issue. \ No newline at end of file diff --git a/dashboards-reports/DEVELOPER_GUIDE.md b/dashboards-reports/DEVELOPER_GUIDE.md new file mode 100644 index 00000000..a79bd195 --- /dev/null +++ b/dashboards-reports/DEVELOPER_GUIDE.md @@ -0,0 +1,46 @@ +## Developer Guide + +So you want to contribute code to this project? Excellent! We're glad you're here. Here's what you need to do. + +## Setup + +1. Download OpenSearch for the version that matches the [OpenSearch Dashboards version specified in package.json](./package.json#L7). +1. Download the OpenSearch Dashboards source code for the [version specified in package.json](./package.json#L7) you want to set up. + +1. Change your node version to the version specified in `.node-version` inside the OpenSearch Dashboards root directory. +1. Create a `plugins` directory inside the OpenSearch Dashboards source code directory, if `plugins` directory doesn't exist. +1. Check out this package from version control into the `plugins` directory. + ``` + git clone git@github.com:opensearch-project/dashboards-reports.git plugins --no-checkout + cd plugins + echo 'dashboards-reports/*' >> .git/info/sparse-checkout + git config core.sparseCheckout true + git checkout dev + ``` +1. Run `yarn osd bootstrap` inside `OpenSearch-Dashboards/plugins/dashboards-reports`. + +Ultimately, your directory structure should look like this: + + +```md +. +├── OpenSearch-Dashboards +│ └──plugins +│ └── dashboards-reports +``` + +## Build + +To build the plugin's distributable zip simply run `yarn build`. + +Example output: `./build/reports-dashboards-0.0.1.zip` + +## Run + +- `yarn start` + + Starts OpenSearch Dashboards and includes this plugin. OpenSearch Dashboards will be available on `localhost:5601`. + +- `yarn test:jest` + + Runs the plugin tests. diff --git a/dashboards-reports/README.md b/dashboards-reports/README.md index fcdec109..85204bf8 100644 --- a/dashboards-reports/README.md +++ b/dashboards-reports/README.md @@ -1,70 +1,23 @@ # OpenSearch Dashboards Reports -OpenSearch Dashboards Reports allows ‘Report Owner’ (engineers, including but not limited to developers, DevOps, IT Engineer, and IT admin) export and share reports from OpenSearch Dashboards dashboards, saved search, alerts and visualizations. It helps automate the process of scheduling reports on an on-demand or a periodical basis (on cron schedules as well). Further, it also automates the process of exporting and sharing reports triggered for various alerts. The feature is present in the Dashboard, Discover, and Visualization tabs. Scheduled reports can be sent to (shared with) self or various stakeholders within the organization such as, including but not limited to, executives, managers, engineers (developers, DevOps, IT Engineer) in the form of pdf, hyperlinks, csv, excel via various channels such as email, slack, Amazon Chime. However, in order to export, schedule and share reports, report owners should have the necessary permissions as defined under Roles and Privileges. +OpenSearch Dashboards Reports allows ‘Report Owner’ (engineers, including but not limited to developers, DevOps, IT Engineer, and IT admin) export and share reports from OpenSearch Dashboards dashboards, saved search, alerts and visualizations. It helps automate the process of scheduling reports on an on-demand or a periodical basis (on cron schedules as well). Further, it also automates the process of exporting and sharing reports triggered for various alerts. The feature is present in the Dashboard, Discover, and Visualization tabs. We are currently working on integrating Dashboards Reports with Notifications to enable sharing functionality. After the support is introduced, scheduled reports can be sent to (shared with) self or various stakeholders within the organization. These stakeholders include but are not limited to, executives, managers, engineers (developers, DevOps, IT Engineer) in the form of pdf, hyperlinks, csv, excel via various channels such as email, Slack, and Amazon Chime. However, in order to export, schedule and share reports, report owners should have the necessary permissions as defined under Roles and Privileges. -# Request for Comments ( RFC ) +## Contributing -Please add your feature requests here [ New Requests ](https://github.com/opensearch-project/dashboards-reports/issues) and view project progress here [RFCs](https://github.com/opensearch-project/dashboards-reports/projects/1). - -## Setup - -1. Download OpenSearch for the version that matches the [OpenSearch Dashboards version specified in package.json](./package.json#L7). -1. Download the OpenSearch Dashboards source code for the [version specified in package.json](./package.json#L7) you want to set up. - -1. Change your node version to the version specified in `.node-version` inside the OpenSearch Dashboards root directory. -1. Create a `plugins` directory inside the OpenSearch Dashboards source code directory, if `plugins` directory doesn't exist. -1. Check out this package from version control into the `plugins` directory. - ``` - git clone git@github.com:opensearch-project/dashboards-reports.git plugins --no-checkout - cd plugins - echo 'dashboards-reports/*' >> .git/info/sparse-checkout - git config core.sparseCheckout true - git checkout dev - ``` -1. Run `yarn osd bootstrap` inside `OpenSearch-Dashboards/plugins/dashboards-reports`. - -Ultimately, your directory structure should look like this: - - -```md -. -├── OpenSearch-Dashboards -│ └──plugins -│ └── dashboards-reports -``` - -## Build - -To build the plugin's distributable zip simply run `yarn build`. - -Example output: `./build/reports-dashboards-0.0.1.zip` - -## Run - -- `yarn start` - - Starts OpenSearch Dashboards and includes this plugin. OpenSearch Dashboards will be available on `localhost:5601`. - -- `yarn test:jest` - - Runs the plugin tests. - -## Contributing to OpenSearch Dashboards reports - -We welcome you to get involved in development, documentation, testing the OpenSearch Dashboards reports plugin. See our [CONTRIBUTING.md](./CONTRIBUTING.md) and join in. +See [developer guide](DEVELOPER_GUIDE.md) and [how to contribute to this project](../CONTRIBUTING.md). ## Code of Conduct -This project has adopted an [Open Source Code of Conduct](https://opensearch.org/codeofconduct.html). +This project has adopted the [Amazon Open Source Code of Conduct](../CODE_OF_CONDUCT.md). For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq), or contact [opensource-codeofconduct@amazon.com](mailto:opensource-codeofconduct@amazon.com) with any additional questions or comments. -## Security issue notifications +## Security If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public GitHub issue. ## License -See the [LICENSE](./LICENSE.txt) file for our project's licensing. We will ask you to confirm the licensing of your contribution. +See the [LICENSE](../LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution. ## Copyright -Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. +Copyright 2020-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/docs/dashboards-reports/dev/OpenSearch-Dashboards-Reporting-Design-Proposal.md b/docs/dashboards-reports/dev/OpenSearch-Dashboards-Reporting-Design-Proposal.md index aa2d9559..e9b617df 100644 --- a/docs/dashboards-reports/dev/OpenSearch-Dashboards-Reporting-Design-Proposal.md +++ b/docs/dashboards-reports/dev/OpenSearch-Dashboards-Reporting-Design-Proposal.md @@ -279,7 +279,7 @@ All the OpenSearch Dashboards Server APIs will be exposed as HTTP(S) RESTFul API API calls are stateless. Each request that you make happens in isolation from other calls and must include all of the necessary information for OpenSearch Dashboards to fulfill the request. APIs may optionally take JSON formatted request body. API requests return JSON output, which is a format that is machine-readable and works well for automation. -List of existing [OpenSearch Dashboards REST APIs](https://www.elastic.co/guide/en/kibana/master/using-api.html) +List of existing OpenSearch Dashboards REST APIs (TODO: Add link) **(A) generateReport** @@ -439,7 +439,7 @@ Scheduled Report Creation workflow ### 4.4 Alerting Integration -https://docs-beta.opensearch.org/docs/alerting/ +https://docs-beta.opensearch.org/monitoring-plugins/alerting/index/ ODFE Alerting can be used as an external trigger. To generate the report the `generateReport()` API can be utilized as `custom_webhook` destination.