diff --git a/.github/workflows/pr-project-board.yml b/.github/workflows/pr-project-board.yml deleted file mode 100644 index 6d6c04a1aa..0000000000 --- a/.github/workflows/pr-project-board.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Move content PR to Project Board - -on: - pull_request_target: - types: [opened] - paths: - - "quickstarts/**" - -env: - GITHUB_TOKEN: ${{ secrets.OPENSOURCE_BOT_TOKEN }} - -jobs: - move-pr-to-project-board: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - - - name: Move PR to Project Board for triage - run: | - gh pr edit ${{github.event.pull_request.number}} --add-project "NR1 Quickstarts Community" diff --git a/.github/workflows/preview-links.yml b/.github/workflows/preview-links.yml deleted file mode 100644 index 665d3eff74..0000000000 --- a/.github/workflows/preview-links.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Preview links - -on: - pull_request_target: - branches: - - main - types: [opened] - -env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PR_NUMBER: ${{ github.event.pull_request.number }} - -jobs: - generate: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - - - name: Setup workspace - uses: "./.github/actions/bootstrap" - - - name: Create preview links - id: links - env: - PR_URL: ${{ github.event.pull_request.url }} - run: | - cd utils && yarn create-preview-links "$PR_URL" "$PR_NUMBER" - - name: Comment - if: steps.links.outputs.comment != '' - env: - COMMENT: ${{ steps.links.outputs.comment }} - run: | - gh pr comment "$PR_NUMBER" --body "$COMMENT" diff --git a/.github/workflows/quickstarts.eu-production.yml b/.github/workflows/quickstarts.eu-production.yml deleted file mode 100644 index 518e0541f9..0000000000 --- a/.github/workflows/quickstarts.eu-production.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Submit All - EU-Production - -on: - workflow_dispatch: - inputs: - pr-number: - description: 'PR to run against' - required: true - -jobs: - eu-production: - uses: ./.github/workflows/reusable.quickstart_submission.yml - with: - pr-number: ${{ github.event.inputs.pr-number }} - dry-run: false - secrets: - nr-api-url: ${{ secrets.NR_API_URL_EU }} - nr-api-token: ${{ secrets.NR_API_TOKEN_EU }} - github-token: ${{ secrets.GITHUB_TOKEN }} - nr-license-key: ${{ secrets.NEW_RELIC_LICENSE_KEY }} diff --git a/.github/workflows/quickstarts.production.yml b/.github/workflows/quickstarts.production.yml deleted file mode 100644 index 6a5b0a0d0e..0000000000 --- a/.github/workflows/quickstarts.production.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Submit All - Production - -on: - workflow_dispatch: - inputs: - pr-number: - description: 'PR to run against' - required: true - -jobs: - production: - uses: ./.github/workflows/reusable.quickstart_submission.yml - with: - pr-number: ${{ github.event.inputs.pr-number }} - dry-run: false - secrets: - nr-api-url: ${{ secrets.NR_API_URL }} - nr-api-token: ${{ secrets.NR_API_TOKEN }} - github-token: ${{ secrets.GITHUB_TOKEN }} - nr-license-key: ${{ secrets.NEW_RELIC_LICENSE_KEY }} diff --git a/.github/workflows/quickstarts.staging.yml b/.github/workflows/quickstarts.staging.yml deleted file mode 100644 index 28e6a5b20a..0000000000 --- a/.github/workflows/quickstarts.staging.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Submit All - Staging - -on: - workflow_dispatch: - inputs: - pr-number: - description: 'PR to run against' - required: true - -jobs: - staging: - uses: ./.github/workflows/reusable.quickstart_submission.yml - with: - pr-number: ${{ github.event.inputs.pr-number }} - dry-run: false - secrets: - nr-api-url: ${{ secrets.NR_API_URL_STAGING }} - nr-api-token: ${{ secrets.NR_API_TOKEN_STAGING }} - github-token: ${{ secrets.GITHUB_TOKEN }} - nr-license-key: ${{ secrets.NEW_RELIC_LICENSE_KEY }} diff --git a/.github/workflows/release-artifact.yml b/.github/workflows/release-artifact.yml deleted file mode 100644 index 0feb2c5717..0000000000 --- a/.github/workflows/release-artifact.yml +++ /dev/null @@ -1,50 +0,0 @@ -# This workflow runs when a tag is created with the `v` prefix or a push -# to main occurs. It runs our validation script, outputs the artifact, -# creates a new tag, Github release, and uploads/associates the artifact with the release. - -name: Release artifact -on: - push: - branches: - - main - tags: - - 'v*' - -# Permissions for attestation -permissions: - id-token: write - contents: write - attestations: write - -jobs: - release: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - with: - ref: ${{ github.ref }} - - name: Setup workspace - uses: "./.github/actions/bootstrap" - - name: Validate and generate artifact - uses: "./.github/actions/build-validate-artifact" - with: - output-artifact: 'true' - - name: Attest artifact - uses: actions/attest-build-provenance@1c608d11d69870c2092266b3f9a6f3abbf17002c - with: - subject-path: utils/build/* - - name: Create new release tag - # Only run if this is a branch push (we'll need a new tag) - if: ${{ startsWith(github.ref, 'refs/heads') }} - id: version - uses: "./.github/actions/bump-version-tag" - - name: Create release - uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 - with: - files: utils/build/* - fail_on_unmatched_files: true - make_latest: true - # If we have a tag output from the previous step, use that as the tag - # name, otherwise use the current ref which should be the tag. - tag_name: ${{ steps.version.outputs.tag || github.ref }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1773cc5925..e5aaeba293 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,13 +4,27 @@ on: push: branches: - main + tags: + - 'v*' env: THIRD_PARTY_GIT_AUTHOR_EMAIL: opensource+bot@newrelic.com THIRD_PARTY_GIT_AUTHOR_NAME: nr-opensource-bot +defaults: + run: + shell: bash + working-directory: ./utils + +permissions: + id-token: write # Required for attestation + attestations: write # Required for attestation + contents: write + jobs: generate-third-party-notices: + # Don't run this if it's a tag push + if: ${{ startsWith(github.ref, 'refs/heads') }} runs-on: ubuntu-latest steps: # Checkout fetch-depth: 2 because there's a check to see if package.json @@ -24,13 +38,11 @@ jobs: uses: "./.github/actions/bootstrap" - name: Install OSS CLI - working-directory: ./utils run: | yarn global add @newrelic/newrelic-oss-cli - name: Generate Third Party Notices id: generate-notices - working-directory: ./utils run: | if [ ! -f "third_party_manifest.json" ]; then echo "::error::third_party_manifest.json is missing. Must generate using the newrelic-oss-cli." @@ -55,3 +67,34 @@ jobs: else echo "No change in package.json, not regenerating third-party notices" fi + release: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 + with: + ref: ${{ github.ref }} + - name: Setup workspace + uses: "./.github/actions/bootstrap" + - name: Validate and generate artifact + uses: "./.github/actions/build-validate-artifact" + with: + output-artifact: 'true' + - name: Attest artifact + uses: actions/attest-build-provenance@1c608d11d69870c2092266b3f9a6f3abbf17002c + with: + subject-path: utils/build/* + - name: Create new release tag + # Only run if this is a branch push (we'll need a new tag) + if: ${{ startsWith(github.ref, 'refs/heads') }} + id: version + uses: "./.github/actions/bump-version-tag" + - name: Create release + uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 + with: + files: utils/build/* + fail_on_unmatched_files: true + make_latest: true + # If we have a tag output from the previous step, use that as the tag + # name, otherwise use the current ref which should be the tag. + tag_name: ${{ steps.version.outputs.tag || github.ref }} diff --git a/.github/workflows/reusable.quickstart_submission.yml b/.github/workflows/reusable.quickstart_submission.yml deleted file mode 100644 index 4857fa880c..0000000000 --- a/.github/workflows/reusable.quickstart_submission.yml +++ /dev/null @@ -1,126 +0,0 @@ -# Reusable workflow for creating, updating, or validating quickstarts for a single environment. -name: Quickstart submission - -on: - workflow_call: - inputs: - pr-number: - required: true - type: string - dry-run: - required: true - type: boolean - default: true - secrets: - nr-api-url: - required: true - nr-api-token: - required: true - github-token: - required: true - nr-license-key: - required: true - -env: - PR_NUMBER: ${{ inputs.pr-number }} - DRY_RUN: ${{ inputs.dry-run }} - -jobs: - submit-data-sources: - name: Submit data sources - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - # Ensure we have the most recent commit to `main` - with: - ref: 'main' - fetch-depth: 0 - - - name: Setup workspace - uses: './.github/actions/bootstrap' - - - name: Update data sources - env: - NR_API_URL: ${{ secrets.nr-api-url }} - NR_API_TOKEN: ${{ secrets.nr-api-token }} - GITHUB_TOKEN: ${{ secrets.github-token }} - NEW_RELIC_LICENSE_KEY: ${{ secrets.nr-license-key }} - run: | - URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/$PR_NUMBER/files" - cd utils && yarn create-validate-data-sources "$URL" "$DRY_RUN" - - submit-quickstarts: - needs: [submit-data-sources] - name: Submit quickstarts - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - # Ensure we have the most recent commit to `main` - with: - ref: 'main' - fetch-depth: 0 - - - name: Setup workspace - uses: './.github/actions/bootstrap' - - - name: Update quickstarts - env: - NR_API_URL: ${{ secrets.nr-api-url }} - NR_API_TOKEN: ${{ secrets.nr-api-token }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NEW_RELIC_LICENSE_KEY: ${{ secrets.nr-license-key }} - run: | - URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/$PR_NUMBER/files" - cd utils && yarn create-validate-pr-quickstarts "$URL" "$DRY_RUN" - - set-dashboard-required-datasources: - needs: [submit-quickstarts] - name: Set dashboard required datasources - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - # Ensure we have the most recent commit to `main` - with: - ref: 'main' - fetch-depth: 0 - - - name: Setup workspace - uses: './.github/actions/bootstrap' - - - name: Update dashboards with required datasources from quickstarts - env: - NR_API_URL: ${{ secrets.nr-api-url }} - NR_API_TOKEN: ${{ secrets.nr-api-token }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NEW_RELIC_LICENSE_KEY: ${{ secrets.nr-license-key }} - run: | - URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/$PR_NUMBER/files" - cd utils && yarn set-dashboards-required-datasources "$URL" - - set-alert-policy-required-datasources: - needs: [submit-quickstarts] - name: Set alert policy required datasources - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - # Ensure we have the most recent commit to `main` - with: - ref: 'main' - fetch-depth: 0 - - - name: Setup workspace - uses: './.github/actions/bootstrap' - - - name: Update dashboards with required datasources from quickstarts - env: - NR_API_URL: ${{ secrets.nr-api-url }} - NR_API_TOKEN: ${{ secrets.nr-api-token }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NEW_RELIC_LICENSE_KEY: ${{ secrets.nr-license-key }} - run: | - URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/$PR_NUMBER/files" - cd utils && yarn set-alert-policy-required-datasources "$URL" diff --git a/.github/workflows/validate_data_sources.yml b/.github/workflows/validate_data_sources.yml deleted file mode 100644 index 4d0e542d2c..0000000000 --- a/.github/workflows/validate_data_sources.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: Validate data sources - -on: - workflow_run: - workflows: ["Validation Gate"] - types: - - completed - -jobs: - validate-data-source-schema: - name: Validate data source schema - runs-on: ubuntu-latest - steps: - - name: Download artifact - uses: dawidd6/action-download-artifact@268677152d06ba59fcec7a7f0b5d961b6ccd7e1e - with: - workflow: validation_gate.yml - run_id: ${{ github.event.workflow_run.id }} - - - name: Get PR number - id: get_pr_number - run: | - export PR_NUMBER=$(cat artifact/pr_number.txt) - echo "pr-number=$PR_NUMBER" >> $GITHUB_ENV - - - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - with: - ref: "refs/pull/${{ env.pr-number }}/merge" - - - name: Setup workspace - uses: "./.github/actions/bootstrap" - - - name: Validate new files - id: validation - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NR_API_URL: ${{ secrets.NR_API_URL }} - NR_API_TOKEN: ${{ secrets.NR_API_TOKEN }} - NEW_RELIC_NO_CONFIG_FILE: true - NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }} - NEW_RELIC_APP_NAME: ${{ secrets.NEW_RELIC_APP_NAME }} - NEW_RELIC_HOST: staging-collector.newrelic.com - NODE_ENV: production - PR_NUMBER: ${{ env.pr-number }} - run: | - URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/$PR_NUMBER/files" - DRY_RUN=true - cd utils && yarn create-validate-data-sources $URL $DRY_RUN - - - name: Add commit status - if: always() - uses: "./.github/actions/add-commit-status" - with: - statusContext: "Validation / Data source schema compliance" - state: ${{ job.status }} diff --git a/.github/workflows/validate_packs.yml b/.github/workflows/validate_packs.yml index be85d7a1e7..3f69006e93 100644 --- a/.github/workflows/validate_packs.yml +++ b/.github/workflows/validate_packs.yml @@ -39,7 +39,6 @@ jobs: run: cd utils && yarn check-quickstart-uniqueness - name: Add commit status - if: always() uses: "./.github/actions/add-commit-status" with: statusContext: "Validation / Quickstart id are unique" @@ -74,7 +73,6 @@ jobs: run: cd utils && yarn validate-images - name: Add commit status - if: always() uses: "./.github/actions/add-commit-status" with: statusContext: "Validation / Image count and extension compliance" @@ -109,102 +107,11 @@ jobs: run: cd utils && yarn validate-icons - name: Add commit status - if: always() uses: "./.github/actions/add-commit-status" with: statusContext: "Validation / Ensure icons exist" state: ${{ job.status }} - validate-quickstart: - name: Validate Quickstart - runs-on: ubuntu-latest - steps: - - name: Download artifact - uses: dawidd6/action-download-artifact@268677152d06ba59fcec7a7f0b5d961b6ccd7e1e - with: - workflow: validation_gate.yml - run_id: ${{ github.event.workflow_run.id }} - - - name: Get PR number - id: get_pr_number - run: | - export PR_NUMBER=$(cat artifact/pr_number.txt) - echo "pr-number=$PR_NUMBER" >> $GITHUB_ENV - - - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - with: - ref: "refs/pull/${{ env.pr-number }}/merge" - - - name: Setup workspace - uses: "./.github/actions/bootstrap" - - - name: Validate pr quickstart files - id: validation - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NR_API_URL: ${{ secrets.NR_API_URL }} - NR_API_TOKEN: ${{ secrets.NR_API_TOKEN }} - NEW_RELIC_NO_CONFIG_FILE: true - NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }} - NEW_RELIC_APP_NAME: ${{ secrets.NEW_RELIC_APP_NAME }} - NEW_RELIC_HOST: staging-collector.newrelic.com - NODE_ENV: production - PR_NUMBER: ${{ env.pr-number }} - run: | - URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/$PR_NUMBER/files" - DRY_RUN=true - cd utils && yarn create-validate-pr-quickstarts "$URL" "$DRY_RUN" - - - name: Add commit status - if: always() - uses: "./.github/actions/add-commit-status" - with: - statusContext: "Validation / Validate Quickstart Schema" - state: ${{ job.status }} - - validate-data-source-ids: - name: Validate data source ids - runs-on: ubuntu-latest - steps: - - name: Download artifact - uses: dawidd6/action-download-artifact@268677152d06ba59fcec7a7f0b5d961b6ccd7e1e - with: - workflow: validation_gate.yml - run_id: ${{ github.event.workflow_run.id }} - - - name: Get PR number - id: get_pr_number - run: | - export PR_NUMBER=$(cat artifact/pr_number.txt) - echo "pr-number=$PR_NUMBER" >> $GITHUB_ENV - - - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - with: - ref: "refs/pull/${{ env.pr-number }}/merge" - - - name: Setup workspace - uses: "./.github/actions/bootstrap" - - - name: Validate new files - id: validation - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PR_NUMBER: ${{ env.pr-number }} - NR_API_URL: ${{ secrets.NR_API_URL }} - NR_API_TOKEN: ${{ secrets.NR_API_TOKEN }} - run: | - URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/$PR_NUMBER/files" - cd utils && yarn validate-quickstart-data-sources "$URL" - - - name: Add commit status - if: always() - uses: "./.github/actions/add-commit-status" - with: - statusContext: "Validation / Data source ids exist" - state: ${{ job.status }} - ensure-quickstart-dashboard-names-are-unique: name: Ensure quickstart dashboard names are unique runs-on: ubuntu-latest @@ -234,7 +141,6 @@ jobs: run: cd utils && yarn check-dashboard-name-uniqueness - name: Add commit status - if: always() uses: "./.github/actions/add-commit-status" with: statusContext: "Validation / Quickstart dashboard name is unique" diff --git a/_template/data-sources/example-data-source/config.yml b/_template/data-sources/example-data-source/config.yml index 7dda052980..d32837faca 100644 --- a/_template/data-sources/example-data-source/config.yml +++ b/_template/data-sources/example-data-source/config.yml @@ -1,8 +1,7 @@ id: logs displayName: Display name description: | - ## Description - ## Supports markdown + Description does not support markdown. icon: logo.svg install: primary: diff --git a/dashboards/netscaler/netscaler.json b/dashboards/netscaler/netscaler.json new file mode 100644 index 0000000000..205028b6aa --- /dev/null +++ b/dashboards/netscaler/netscaler.json @@ -0,0 +1,137 @@ +{ + "name": "Netscaler", + "description": null, + "pages": [ + { + "name": "Netscaler", + "description": null, + "widgets": [ + { + "title": "", + "layout": { + "column": 1, + "row": 1, + "width": 6, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": " ![NetScaler logo](https://www.layer8training.com/wp-content/uploads/2024/05/netscaler-logo-black.png)\n# Dashbaord" + } + }, + { + "title": "Unique Bot Types and their counts", + "layout": { + "column": 7, + "row": 1, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT uniqueCount(bot_type_desc), uniques(bot_type_desc) FROM Bot since 30 days ago" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Transaction Count", + "layout": { + "column": 1, + "row": 3, + "width": 6, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT uniqueCount(transaction_id) from Bot since 30 days ago" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "App names seeing Bot Violations", + "layout": { + "column": 7, + "row": 4, + "width": 6, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT uniques(appname) from Bot since 30 days ago" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Total Attacks", + "layout": { + "column": 1, + "row": 5, + "width": 6, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT count(total_attacks) from Bot since 30 days ago" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + } + ], + "variables": [] + } \ No newline at end of file diff --git a/dashboards/netscaler/netscaler01.png b/dashboards/netscaler/netscaler01.png new file mode 100644 index 0000000000..b1f4d97f40 Binary files /dev/null and b/dashboards/netscaler/netscaler01.png differ diff --git a/data-sources/flutter-android/config.yml b/data-sources/flutter-android/config.yml index 378648bb10..d0116a4387 100644 --- a/data-sources/flutter-android/config.yml +++ b/data-sources/flutter-android/config.yml @@ -9,10 +9,11 @@ install: nerdletId: marketplace.install-data-source nerdletState: dataSourceId: flutter-android - frameworkConfigId: flutter + frameworkConfigId: flutter-android requiresAccount: false keywords: - flutter - flutter android application - android agent - - flutter agent \ No newline at end of file + - flutter agent + - android \ No newline at end of file diff --git a/data-sources/flutter-ios/config.yml b/data-sources/flutter-ios/config.yml index af7039dbb6..cf5b333591 100644 --- a/data-sources/flutter-ios/config.yml +++ b/data-sources/flutter-ios/config.yml @@ -9,10 +9,11 @@ install: nerdletId: marketplace.install-data-source nerdletState: dataSourceId: flutter-ios - frameworkConfigId: flutter + frameworkConfigId: flutter-ios requiresAccount: false keywords: - flutter - flutter ios application - ios agent - - flutter agent \ No newline at end of file + - flutter agent + - ios \ No newline at end of file diff --git a/data-sources/netscaler/config.yml b/data-sources/netscaler/config.yml new file mode 100644 index 0000000000..d989d048fe --- /dev/null +++ b/data-sources/netscaler/config.yml @@ -0,0 +1,17 @@ +id: netscaler +displayName: NetScaler +description: | + NetScaler is a networking product and application delivery controller (ADC) that improves the delivery of applications to end users. +icon: logo.png +install: + primary: + link: + url: https://docs.netscaler.com/en-us/netscaler-application-delivery-management-software/current-release/analytics/security/new-relic-integration.html +keywords: + - netscaler + - events + - networking + - newrelic partner + - NR1_addData +categoryTerms: + - newrelic partner \ No newline at end of file diff --git a/data-sources/netscaler/logo.png b/data-sources/netscaler/logo.png new file mode 100644 index 0000000000..69461df386 Binary files /dev/null and b/data-sources/netscaler/logo.png differ diff --git a/data-sources/vertx-extensions/config.yml b/data-sources/vertx-extensions/config.yml index 61c5047d54..3eb0c156af 100644 --- a/data-sources/vertx-extensions/config.yml +++ b/data-sources/vertx-extensions/config.yml @@ -29,4 +29,3 @@ keywords: - mongodb - reactive - coroutines - - NR1_addData diff --git a/data-sources/windows-certs/config.yml b/data-sources/windows-certs/config.yml index f02f63ed57..eabdf89357 100644 --- a/data-sources/windows-certs/config.yml +++ b/data-sources/windows-certs/config.yml @@ -1,14 +1,7 @@ id: windows-certs displayName: Flex Windows Cert Expiration Monitoring Install Plan description: | - ## Windows Certs via Flex Using the infrastructure agent and a flex integration you can pull certification expiration using powershell and send the information to new relic to be used in dashboards or alerts. - - Follow the regular flex installation process to add this flex integration to your agents, study the data to confirm if it matches your needs. - - ## What is Flex - New Relic Flex is an application-agnostic, all-in-one tool that allows you to collect metric data from a wide variety of services. It comes bundled with our infrastructure agent. You can instrument any app that exposes metrics over a standard protocol (HTTP, file, shell) in a standard format (for example, JSON or plain text): you create a YAML config file, start the Infrastructure agent, and your data is reported to New Relic. - icon: logo.png # Searchable words or phrases keywords: @@ -23,4 +16,4 @@ install: url: https://github.com/newrelic/nri-flex/tree/master/examples/windows/WindowsExpCertSample categoryTerms: - - infrastructure \ No newline at end of file + - infrastructure diff --git a/quickstarts/c/config.yml b/quickstarts/c/config.yml deleted file mode 100644 index 50110040cb..0000000000 --- a/quickstarts/c/config.yml +++ /dev/null @@ -1,35 +0,0 @@ -id: 7fa19c5e-b97b-4c4d-954e-bc209afec3ba -slug: c -description: | - ## What is C? - - General-purpose, procedural, imperative computer programming language - developed in 1972 by Dennis M. Ritchie at the Bell Telephone. - - ## Get started! - - Leverage community expertise and instantly get value out of your telemetry data. This quickstart automatically instruments C with the New Relic C SDK, and allows you to further leverage New Relic's APM capabilities by setting up [custom dashboards](https://docs.newrelic.com/docs/query-your-data/explore-query-data/dashboards/introduction-dashboards/), [errors inbox](https://docs.newrelic.com/docs/apm/apm-ui-pages/errors-inbox/errors-inbox/), [transaction tracing](https://docs.newrelic.com/docs/apm/transactions/transaction-traces/introduction-transaction-traces/), and [service maps](https://docs.newrelic.com/docs/understand-dependencies/understand-system-dependencies/service-maps/introduction-service-maps/). - - ## More info - - Check out the [documentation](https://docs.newrelic.com/docs/agents/c-sdk/get-started/introduction-c-sdk/) to learn more about New Relic monitoring for C. -summary: | - Monitor C with New Relic's C agent -icon: logo.svg -level: New Relic -authors: - - New Relic -title: C -documentation: - - name: C installation docs - description: | - General-purpose, procedural, imperative computer programming language - developed in 1972 by Dennis M. Ritchie at the Bell Telephone. - url: https://docs.newrelic.com/docs/agents/c-sdk -keywords: - - apm - - language agent -dashboards: - - c -alertPolicies: - - c diff --git a/quickstarts/c/logo.svg b/quickstarts/c/logo.svg deleted file mode 100644 index 7c3b085b1d..0000000000 --- a/quickstarts/c/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/quickstarts/dotnet/blazor-server/config.yml b/quickstarts/dotnet/blazor-server/config.yml index 3171c792c6..c74850b372 100644 --- a/quickstarts/dotnet/blazor-server/config.yml +++ b/quickstarts/dotnet/blazor-server/config.yml @@ -35,7 +35,7 @@ documentation: - name: Blazor Server installation docs description: | Our .NET APM agent can be used to instrument and monitor your Blazor Server application. Perform an immediate analysis of your performance statistics. - url: https://docs.newrelic.com/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements-net-framework/#technologies + url: https://docs.newrelic.com/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements/#2 keywords: - dotnet - .net diff --git a/quickstarts/drdroid/config.yml b/quickstarts/drdroid/config.yml new file mode 100644 index 0000000000..bc89bdceab --- /dev/null +++ b/quickstarts/drdroid/config.yml @@ -0,0 +1,29 @@ +id: 80a964ae-8fa2-4743-b1e1-e7f2a259501b +slug: drdroid +description: | + ## DoctorDroid PlayBooks Overview + PlayBooks is a single interface to run log commands, DB queries, remote server commands, k8s commands, fetch metrics and more. + + ### New Relic integration with DoctorDroid + With the New Relic - DoctorDroid integration, you can query metrics from New Relic right to your DoctorDroid Playbook. Queries are available for: + - Fetching a New Relic golden metric + - Fetching a metric from a specific dashboard widget + - Fetching a metric from a custom NRQL query + +summary: | + Integrate New Relic with DoctorDroid's PlayBooks +icon: logo.jpeg +level: New Relic +authors: + - New Relic +title: DoctorDroid +documentation: + - name: DoctorDroid integration documentation + description: | + Integrate New Relic for use in DoctorDroid's PlayBooks feature. + url: https://docs.drdroid.io/docs/new-relic-access +keywords: + - doctor droid + - drdroid + - playbook + - newrelic partner \ No newline at end of file diff --git a/quickstarts/drdroid/logo.jpeg b/quickstarts/drdroid/logo.jpeg new file mode 100644 index 0000000000..ecd7c21cd2 Binary files /dev/null and b/quickstarts/drdroid/logo.jpeg differ diff --git a/quickstarts/netscaler/config.yml b/quickstarts/netscaler/config.yml new file mode 100644 index 0000000000..7b151de3d7 --- /dev/null +++ b/quickstarts/netscaler/config.yml @@ -0,0 +1,41 @@ +id: c0fb3275-8ffe-4a37-9ee2-35eb1d95fd50 +slug: netscaler +title: NetScaler +description: | + ## What is NetScaler? + + NetScaler is a networking product and application delivery controller (ADC) that improves the delivery of applications to end users. + + ### About this integration + + With the NetScaler New Relic integration, you can gain visibility into your NetScaler analytics. + + ### Using the NetScaler dashboard + + This dashboard is created assuming the 'Bot' event. For other events (WAF etc.) you can change the event name in the query, or explore the events directly in [New Relic's events explorer](https://docs.newrelic.com/docs/query-your-data/explore-query-data/browse-data/introduction-data-explorer/) + +summary: | + Monitor NetScaler Console in New Relic +level: New Relic +icon: logo.png + +authors: + - New Relic + - Joseph Counts +documentation: + - name: NetScaler documentation + description: | + You can now integrate NetScaler Console with New Relic to view analytics for WAF and Bot violations in New Relic. + url: https://docs.netscaler.com/en-us/netscaler-application-delivery-management-software/current-release/analytics/security/new-relic-integration.html +dataSourceIds: + - netscaler +keywords: + - citrix + - web + - netscaler + - NR1_addData + - NR1_sys + - newrelic partner + +dashboards: + - netscaler \ No newline at end of file diff --git a/quickstarts/netscaler/logo.png b/quickstarts/netscaler/logo.png new file mode 100644 index 0000000000..69461df386 Binary files /dev/null and b/quickstarts/netscaler/logo.png differ diff --git a/utils/package.json b/utils/package.json index 65cd01ecfe..8986befee9 100644 --- a/utils/package.json +++ b/utils/package.json @@ -40,7 +40,7 @@ "ajv": "^8.11.0", "cockatiel": "^3.0.0-beta.0", "cors": "^2.8.5", - "express": "^4.18.1", + "express": "^4.20.0", "glob": "^7.2.3", "graphql": "^16.8.1", "graphql-markdown": "^6.0.0", diff --git a/utils/yarn.lock b/utils/yarn.lock index e6c3ce9d14..1c48279c52 100644 --- a/utils/yarn.lock +++ b/utils/yarn.lock @@ -1221,21 +1221,21 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.3: + version "1.20.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" + integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" + qs "6.13.0" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -1302,6 +1302,17 @@ call-bind@^1.0.0: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" @@ -1436,10 +1447,10 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.8.0" @@ -1453,10 +1464,10 @@ cookie-signature@1.0.6: resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== cors@^2.8.5: version "2.8.5" @@ -1545,6 +1556,15 @@ deepmerge@^4.2.2: resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" @@ -1612,6 +1632,11 @@ encodeurl@~1.0.2: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" @@ -1619,6 +1644,18 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" @@ -1701,37 +1738,37 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -express@^4.18.1: - version "4.18.2" - resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== +express@^4.20.0: + version "4.20.0" + resolved "https://registry.yarnpkg.com/express/-/express-4.20.0.tgz#f1d08e591fcec770c07be4767af8eb9bcfd67c48" + integrity sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.3" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" finalhandler "1.2.0" fresh "0.5.2" http-errors "2.0.0" - merge-descriptors "1.0.1" + merge-descriptors "1.0.3" methods "~1.1.2" on-finished "2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.7" + path-to-regexp "0.1.10" proxy-addr "~2.0.7" qs "6.11.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" + send "0.19.0" + serve-static "1.16.0" setprototypeof "1.2.0" statuses "2.0.1" type-is "~1.6.18" @@ -1838,6 +1875,11 @@ function-bind@^1.1.1: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" @@ -1857,6 +1899,17 @@ get-intrinsic@^1.0.2: has "^1.0.3" has-symbols "^1.0.3" +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" @@ -1884,6 +1937,13 @@ globals@^11.1.0: resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" @@ -1915,6 +1975,18 @@ has-flag@^4.0.0: resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" @@ -1927,6 +1999,13 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" @@ -2658,10 +2737,10 @@ media-typer@0.3.0: resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== merge-stream@^2.0.0: version "2.0.0" @@ -2784,6 +2863,11 @@ object-assign@^4: resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" @@ -2893,10 +2977,10 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== +path-to-regexp@0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b" + integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w== picocolors@^1.0.0: version "1.0.0" @@ -2972,6 +3056,13 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" +qs@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== + dependencies: + side-channel "^1.0.6" + querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -2982,10 +3073,10 @@ range-parser@~1.2.1: resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -3108,16 +3199,47 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== +send@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serve-static@1.16.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.0.tgz#2bf4ed49f8af311b519c46f272bf6ac3baf38a92" + integrity sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" send "0.18.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" @@ -3144,6 +3266,16 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" +side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"