diff --git a/.github/workflows/actions test.yml b/.github/workflows/actions test.yml new file mode 100644 index 0000000..3d8940a --- /dev/null +++ b/.github/workflows/actions test.yml @@ -0,0 +1,18 @@ +name: Actions test +run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 +on: [push] +jobs: + Explore-GitHub-Actions: + runs-on: ubuntu-latest + steps: + - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." + - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" + - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." + - name: Check out repository code + uses: actions/checkout@v3 + - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." + - run: echo "🖥️ The workflow is now ready to test your code on the runner." + - name: List files in the repository + run: | + ls ${{ github.workspace }} + - run: echo "🍏 This job's status is ${{ job.status }}." diff --git a/.github/workflows/github-actions-demo.yml b/.github/workflows/github-actions-demo.yml new file mode 100644 index 0000000..e007988 --- /dev/null +++ b/.github/workflows/github-actions-demo.yml @@ -0,0 +1,18 @@ +name: GitHub Actions Demo +run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 +on: [push] +jobs: + Explore-GitHub-Actions: + runs-on: ubuntu-latest + steps: + - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." + - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" + - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." + - name: Check out repository code + uses: actions/checkout@v3 + - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." + - run: echo "🖥️ The workflow is now ready to test your code on the runner." + - name: List files in the repository + run: | + ls ${{ github.workspace }} + - run: echo "🍏 This job's status is ${{ job.status }}." diff --git a/.gitleaks.toml b/.gitleaks.toml new file mode 100644 index 0000000..91309a7 --- /dev/null +++ b/.gitleaks.toml @@ -0,0 +1 @@ +title = "gitleaks config" diff --git a/.harness/Git_Experience_Pipeline_Test.yaml b/.harness/Git_Experience_Pipeline_Test.yaml new file mode 100644 index 0000000..c29e9db --- /dev/null +++ b/.harness/Git_Experience_Pipeline_Test.yaml @@ -0,0 +1,29 @@ +pipeline: + name: Git Experience Pipeline Test + identifier: Git_Experience_Pipeline_Test + projectIdentifier: IDP_Test + orgIdentifier: default + tags: {} + stages: + - stage: + name: Build + identifier: Build + description: "" + type: CI + spec: + cloneCodebase: false + platform: + os: Linux + arch: Amd64 + runtime: + type: Docker + spec: {} + execution: + steps: + - step: + type: Run + name: Run_1 + identifier: Run_1 + spec: + shell: Sh + command: echo "Hello" diff --git a/AWS-COMMON-TAGS.yaml b/AWS-COMMON-TAGS.yaml new file mode 100644 index 0000000..9d0e943 --- /dev/null +++ b/AWS-COMMON-TAGS.yaml @@ -0,0 +1,33 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: AWS-COMMON-TAGS + tags: + - aws + annotations: + backstage.io/techdocs-ref: dir:. + gitlab.com/project-id: '43877214' + jira/project-key: IDP + jenkins.io/github-folder: 'CDS-68313' + firehydrant.com/service-name: 'python-pipeline-samples' + backstage.io/kubernetes-label-selector: 'app=idp-ui' + backstage.io/kubernetes-namespace: 'invalid' + github.com/project-slug: vigneswara-propelo/python-pipeline-samples + pagerduty.com/service-id: PT5ED69 + accountIdentifier: <+account.identifier> + orgIdentifier: <+variable.account.orgIdentifier> + projectIdentifier: <+variable.account.projectIdentifier> + url: https://laxmiharness.pr2.harness.io/ng/account/<+account.identifier>/idp-admin/orgs/<+variable.account.orgIdentifier>/projects/<+variable.account.projectIdentifier>/pipelines/GitHub_Repo_Onboarding/pipeline-studio/?storeType=INLINE&stageId=IDP§ionId=EXECUTION + harness.io/pipelines: | + Build: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Build_IDP_UI_App/pipeline-studio/?storeType=INLINE + Lint: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Lint/pipeline-studio + TypeCheck: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Typecheck/pipeline-studio + grafana/dashboard-selector: "(tags @> 'prometheus' || tags @> 'blackbox')" + npm_token: npm_adfevegevef + +spec: + type: service + lifecycle: experimental + owner: admin@harness.io + providesApis: + - idp-Service-api diff --git a/Aws-Common-Tags.yaml b/Aws-Common-Tags.yaml new file mode 100644 index 0000000..e9ea583 --- /dev/null +++ b/Aws-Common-Tags.yaml @@ -0,0 +1,33 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: Aws-Common-Tags + tags: + - aws + annotations: + backstage.io/techdocs-ref: dir:. + gitlab.com/project-id: '43877214' + jira/project-key: IDP + jenkins.io/github-folder: 'CDS-68313' + firehydrant.com/service-name: 'python-pipeline-samples' + backstage.io/kubernetes-label-selector: 'app=idp-ui' + backstage.io/kubernetes-namespace: 'invalid' + github.com/project-slug: vigneswara-propelo/python-pipeline-samples + pagerduty.com/service-id: PT5ED69 + accountIdentifier: <+account.identifier> + orgIdentifier: <+variable.account.orgIdentifier> + projectIdentifier: <+variable.account.projectIdentifier> + url: https://laxmiharness.pr2.harness.io/ng/account/<+account.identifier>/idp-admin/orgs/<+variable.account.orgIdentifier>/projects/<+variable.account.projectIdentifier>/pipelines/GitHub_Repo_Onboarding/pipeline-studio/?storeType=INLINE&stageId=IDP§ionId=EXECUTION + harness.io/pipelines: | + Build: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Build_IDP_UI_App/pipeline-studio/?storeType=INLINE + Lint: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Lint/pipeline-studio + TypeCheck: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Typecheck/pipeline-studio + grafana/dashboard-selector: "(tags @> 'prometheus' || tags @> 'blackbox')" + npm_token: npm_adfevegevef + +spec: + type: service + lifecycle: experimental + owner: admin@harness.io + providesApis: + - idp-Service-api diff --git a/CICD-preqa.yaml b/CICD-preqa.yaml new file mode 100644 index 0000000..8d88525 --- /dev/null +++ b/CICD-preqa.yaml @@ -0,0 +1,51 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + namespace: default + annotations: + harness.io/project-url: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines + harness.io/ci-pipelineIds: Build_IDP_UI_App,Coverage,Jest,TypeCheck + harness.io/cd-serviceId: SSHQA + harness.io/projects: IDP_UI,IDP_Settings_UI + harness.io/project-url-qa: https://qa.harness.io/ng/account/Vp0XSI5MSgiF9p8lIIpThg/cd/orgs/default/projects/IDPdeploy/pipelines + harness.io/project-url-stress: https://stress.harness.io/ng/account/rzjR8UyZTpOAd6SLDfdBuw/cd/orgs/default/projects/boo/pipelines + harness.io/project-url-stage: https://stage.harness.io/ng/account/wFHXHD0RRQWoO8tIZT5YVw/cd/orgs/Harness/projects/Operations/deployments + harness.io/projects-stage: Operations,RELEASEBUILDS + harness.io/ci-pipelineIds-stage: IDPUIBuildRelease,IDPAdminBuildRelease,IDPAdminCutBranch,IDP_Service,IDP_Admin + harness.io/cd-serviceId-stage: idpservice + backstage.io/source-location: url:https://github.com/vigneswara-propelo/python-pipeline-samples/tree/main/templates + name: cicd + description: test service + tags: + - java + - data + links: + - url: https://example.com/user + title: Examples Users + icon: user + - url: https://example.com/group + title: Example Group + icon: group + - url: https://example.com/cloud + title: Link with Cloud Icon + icon: cloud + - url: https://example.com/dashboard + title: Dashboard + icon: dashboard + - url: https://example.com/help + title: Support + icon: help + - url: https://example.com/web + title: Website + icon: web + - url: https://example.com/alert + title: Alerts + icon: alert +spec: + type: service + lifecycle: experimental + owner: team-a + system: vigneshproject + domain: default + providesApis: + - idp-Service-api diff --git a/CICD-qa-px.yaml b/CICD-qa-px.yaml new file mode 100644 index 0000000..5867ff3 --- /dev/null +++ b/CICD-qa-px.yaml @@ -0,0 +1,51 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + namespace: default + annotations: + harness.io/project-url: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines + harness.io/ci-pipelineIds: Build_IDP_UI_App,Coverage,Jest,TypeCheck + harness.io/cd-serviceId: idp + harness.io/projects: IDP_UI,IDP_Settings_UI + harness.io/project-url-qa: https://qa.harness.io/ng/account/Vp0XSI5MSgiF9p8lIIpThg/cd/orgs/default/projects/IDPdeploy/pipelines + harness.io/project-url-stress: https://stress.harness.io/ng/account/rzjR8UyZTpOAd6SLDfdBuw/cd/orgs/default/projects/boo/pipelines + harness.io/project-url-stage: https://stage.harness.io/ng/account/wFHXHD0RRQWoO8tIZT5YVw/cd/orgs/Harness/projects/Operations/deployments + harness.io/projects-stage: Operations,RELEASEBUILDS + harness.io/ci-pipelineIds-stage: IDPUIBuildRelease,IDPAdminBuildRelease,IDPAdminCutBranch,IDP_Service,IDP_Admin + harness.io/cd-serviceId-stage: idp + backstage.io/source-location: url:https://github.com/vigneswara-propelo/python-pipeline-samples/tree/main/templates + name: cicd-test + description: test service + tags: + - java + - data + links: + - url: https://example.com/user + title: Examples Users + icon: user + - url: https://example.com/group + title: Example Group + icon: group + - url: https://example.com/cloud + title: Link with Cloud Icon + icon: cloud + - url: https://example.com/dashboard + title: Dashboard + icon: dashboard + - url: https://example.com/help + title: Support + icon: help + - url: https://example.com/web + title: Website + icon: web + - url: https://example.com/alert + title: Alerts + icon: alert +spec: + type: service + lifecycle: experimental + owner: team-a + system: vigneshproject + domain: default + providesApis: + - idp-Service-api diff --git a/IDP-preqa.yaml b/IDP-preqa.yaml new file mode 100644 index 0000000..569baca --- /dev/null +++ b/IDP-preqa.yaml @@ -0,0 +1,19 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: IDP + annotations: + backstage.io/techdocs-ref: dir:. + backstage.io/kubernetes-label-selector: 'app=idp-ui' + backstage.io/kubernetes-namespace: '64805447033849710a35ad34' + github.com/project-slug: vigneswara-propelo/python-pipeline-samples + jira/project-key: IDP + +spec: + type: service + lifecycle: experimental + owner: harness_account_all_users + system: vigneshproject-IDP + domain: default + providesApis: + - idp-Service-api diff --git a/api-catalog-info.yaml b/api-catalog-info.yaml new file mode 100644 index 0000000..b81e6b3 --- /dev/null +++ b/api-catalog-info.yaml @@ -0,0 +1,10 @@ +apiVersion: backstage.io/v1alpha1 +kind: API +metadata: + name: idp-Service-api +spec: + type: openapi + lifecycle: production + owner: harness_account_all_users + definition: + $text: https://petstore.swagger.io/v2/swagger.json diff --git a/automation-donotdelete.yaml b/automation-donotdelete.yaml new file mode 100644 index 0000000..d801249 --- /dev/null +++ b/automation-donotdelete.yaml @@ -0,0 +1,28 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + tags: + - automation + name: automation-donotdelete + annotations: + backstage.io/techdocs-ref: dir:. + gitlab.com/project-id: '43877214' + jira/project-key: IDP + jenkins.io/github-folder: 'CDS-68313' + firehydrant.com/service-name: 'python-pipeline-samples' + backstage.io/kubernetes-label-selector: 'app=idp-ui' + backstage.io/kubernetes-namespace: '63feee14cbf66e3c798c4bdc' + github.com/project-slug: vigneswara-propelo/python-pipeline-samples + harness.io/pipelines: | + Build: https://stress.harness.io/ng/account/px7xd_BFRCi-pfWPYXVjvw/home/orgs/default/projects/idptestharness/pipelines/cipipelinetest_sto/pipeline-studio/?storeType=INLINE + harness.io/services: | + cd: https://stress.harness.io/ng/account/px7xd_BFRCi-pfWPYXVjvw/cd/orgs/default/projects/idptestharness/services/testservice + grafana/dashboard-selector: "(tags @> 'prometheus' || tags @> 'blackbox')" + pagerduty.com/service-id: PNISOWY +spec: + type: service + system: delivery + lifecycle: production + owner: harness_account_all_users + providesApis: + - idp-Service-api diff --git a/automation-dummy.yaml b/automation-dummy.yaml new file mode 100644 index 0000000..ce6811f --- /dev/null +++ b/automation-dummy.yaml @@ -0,0 +1,28 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + tags: + - automation-dummy + name: automation-dummy + annotations: + backstage.io/techdocs-ref: dir:. + gitlab.com/project-id: '43877214' + jira/project-key: IDP + jenkins.io/github-folder: 'CDS-68313' + firehydrant.com/service-name: 'python-pipeline-samples' + # backstage.io/kubernetes-label-selector: 'app=idp-ui' + backstage.io/kubernetes-namespace: 'harness-delegate-qa' + github.com/project-slug: vigneswara-propelo/python-pipeline-samples + harness.io/pipelines: | + Build: https://stress.harness.io/ng/account/px7xd_BFRCi-pfWPYXVjvw/home/orgs/default/projects/idptestharness/pipelines/cipipelinetest_sto/pipeline-studio/?storeType=INLINE + harness.io/services: | + cd: https://stress.harness.io/ng/account/px7xd_BFRCi-pfWPYXVjvw/cd/orgs/default/projects/idptestharness/services/testservice + grafana/dashboard-selector: "(tags @> 'prometheus' || tags @> 'blackbox')" + pagerduty.com/service-id: PNISOWY +spec: + type: service + system: delivery + lifecycle: production + owner: harness_account_all_users + providesApis: + - idp-Service-api diff --git a/catalog-info-1.yaml b/catalog-info-1.yaml new file mode 100644 index 0000000..1b49f56 --- /dev/null +++ b/catalog-info-1.yaml @@ -0,0 +1,37 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: python-pipeline-samples-1 + tags: + - python-pipeline + annotations: + backstage.io/techdocs-ref: dir:. +# harness.io/project-url: https://qa.harness.io/ng/account/zEaak-FLS425IEO7OLzMUg/home/orgs/default/projects/vigneshproject/details +# circleci.com/project-slug: github/vigneswara-propelo/python-pipeline-samples + gitlab.com/project-id: '43877214' + jira/project-key: IDP + jenkins.io/github-folder: 'CDS-68313' + firehydrant.com/service-name: 'python-pipeline-samples' + backstage.io/kubernetes-label-selector: 'app=idp-ui' + backstage.io/kubernetes-namespace: 'invalid' + github.com/project-slug: vigneswara-propelo/python-pipeline-samples + pagerduty.com/service-id: PT5ED69 + accountIdentifier: <+account.identifier> + orgIdentifier: <+variable.account.orgIdentifier> + projectIdentifier: <+variable.account.projectIdentifier> + url: https://laxmiharness.pr2.harness.io/ng/account/<+account.identifier>/idp-admin/orgs/<+variable.account.orgIdentifier>/projects/<+variable.account.projectIdentifier>/pipelines/GitHub_Repo_Onboarding/pipeline-studio/?storeType=INLINE&stageId=IDP§ionId=EXECUTION + harness.io/pipelines: | + Build: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Build_IDP_UI_App/pipeline-studio/?storeType=INLINE + Lint: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Lint/pipeline-studio + TypeCheck: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Typecheck/pipeline-studio + grafana/dashboard-selector: "(tags @> 'prometheus' || tags @> 'blackbox')" + npm_token: npm_adfevegevef + +# snyk.io/org-name: vigneswara-propelo +# snyk.io/project-ids: 7c7766e6-1231-4e4f-b51f-0cbd2aacb227 +spec: + type: service + lifecycle: experimental + owner: admin@harness.io + providesApis: + - idp-Service-api diff --git a/catalog-info-2.yaml b/catalog-info-2.yaml new file mode 100644 index 0000000..68c56af --- /dev/null +++ b/catalog-info-2.yaml @@ -0,0 +1,44 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: PYTHON-PIPELINE-SAMPLES + tags: + - python-pipeline + branch: develop + customTags: + - tag1 + - tag2 + harnessData: + qa_versions: + - idp-service_1.3 + - idp-admin_1.3 + qa_versions_jql: fixVersion ~ '*idp-service*1.3*' OR fixVersion ~ '*idp-admin*1.3*' + coverage: "89.00" + projectIdentifier: <+variable.account.projectIdentifier> + orgIdentifier: <+variable.account.orgIdentifier> + annotations: + backstage.io/techdocs-ref: dir:. + jira/project-key: IDP + jenkins.io/github-folder: 'CDS-68313' + firehydrant.com/service-name: 'python-pipeline-samples' + backstage.io/kubernetes-label-selector: 'harness.io/name=kubernetes-delegate' + # backstage.io/kubernetes-namespace: 'harness-delegate-qa' + backstage.io/source-location: url:https://github.com/vigneswara-propelo/python-pipeline-samples/tree/main/ + github.com/project-slug: vigneswara-propelo/python-pipeline-samples + pagerduty.com/service-id: PT5ED69 + harness.io/cd-serviceId: idpapp + harness.io/pipelines: | + Build: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Build_IDP_UI_App/pipeline-studio/?storeType=INLINE + Lint: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Lint/pipeline-studio + TypeCheck: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Typecheck/pipeline-studio + grafana/dashboard-selector: "(tags @> 'prometheus' || tags @> 'blackbox')" + npm_token: npm_adfevegevef + opsgenie.com/team: test + opsgenie.com/component-selector: test + +spec: + type: service + lifecycle: experimental + owner: harness_account_all_users + providesApis: + - idp-Service-api diff --git a/catalog-info.yaml b/catalog-info.yaml index dc10abd..bf7bf81 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -2,10 +2,45 @@ apiVersion: backstage.io/v1alpha1 kind: Component metadata: name: python-pipeline-samples + tags: + - python-pipeline + branch: develop + customTags: + - tag1 + - tag2 + - tag3 + harnessData: + qa_versions: + - idp-service_1.3 + - idp-admin_1.3 + qa_versions_jql: fixVersion ~ '*idp-service*1.3*' OR fixVersion ~ '*idp-admin*1.3*' + releaseVersion: 2.9 + coverage: "89.00" + projectIdentifier: <+variable.account.projectIdentifier> + orgIdentifier: <+variable.account.orgIdentifier> annotations: backstage.io/techdocs-ref: dir:. - harness.io/project-url: https://qa.harness.io/ng/account/zEaak-FLS425IEO7OLzMUg/home/orgs/default/projects/vigneshproject/details + jira/project-key: IDP + jenkins.io/github-folder: 'CDS-68313' + firehydrant.com/service-name: 'python-pipeline-samples' + backstage.io/kubernetes-label-selector: 'harness.io/name=kubernetes-delegate' + # backstage.io/kubernetes-namespace: 'harness-delegate-qa' + backstage.io/source-location: url:https://github.com/vigneswara-propelo/python-pipeline-samples/tree/main/ + github.com/project-slug: vigneswara-propelo/python-pipeline-samples + pagerduty.com/service-id: PT5ED69 + harness.io/cd-serviceId: idpapp + harness.io/pipelines: | + Build: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Build_IDP_UI_App/pipeline-studio/?storeType=INLINE + Lint: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Lint/pipeline-studio + TypeCheck: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Typecheck/pipeline-studio + grafana/dashboard-selector: "(tags @> 'prometheus' || tags @> 'blackbox')" + npm_token: npm_adfevegevef + opsgenie.com/team: test + opsgenie.com/component-selector: test + spec: type: service lifecycle: experimental - owner: team-a + owner: harness_account_all_users + providesApis: + - idp-Service-api diff --git a/docs/index.md b/docs/index.md index 8f56837..9c15710 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1 +1 @@ -## access-control +## Python-pipelines diff --git a/idp-preqa.yaml b/idp-preqa.yaml new file mode 100644 index 0000000..abe6149 --- /dev/null +++ b/idp-preqa.yaml @@ -0,0 +1,19 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: idp + annotations: + backstage.io/techdocs-ref: dir:. + backstage.io/kubernetes-label-selector: 'app=idp-ui' + backstage.io/kubernetes-namespace: '64805447033849710a35ad34' + github.com/project-slug: vigneswara-propelo/python-pipeline-samples + jira/project-key: IDP + +spec: + type: service + lifecycle: experimental-test + owner: harness_account_all_users + system: vigneshproject + domain: default + providesApis: + - idp-Service-api diff --git a/openapi.yaml b/openapi.yaml new file mode 100644 index 0000000..257f4d0 --- /dev/null +++ b/openapi.yaml @@ -0,0 +1,4805 @@ +openapi: 3.0.3 +x-stoplight: + id: ey9ducwgy1udv +info: + title: Harness NextGen Software Delivery Platform API Reference + version: '1.0' + description: This is the Open Api Spec 3 for the IDP Service. This is under active development. Beware of the breaking change with respect to the generated code stub. + contact: + name: API Support + email: contact@harness.io + url: 'https://harness.io/' +servers: + - url: 'https://app.harness.io' +paths: + /v1/backstage-env-variables: + get: + summary: List Backstage Env Variables + responses: + '200': + $ref: '#/components/responses/BackstageEnvVariableResponseList' + operationId: get-backstage-env-variables + description: Get all backsage env variables mapping for a given account + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/Page' + - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Sort' + security: + - x-api-key: [] + x-internal: true + tags: + - BackstageEnvVariable + post: + summary: Create Backstage Environment Variable + operationId: create-backstage-env-variable + responses: + '201': + $ref: '#/components/responses/BackstageEnvVariableResponse' + description: Creates an backstage environment variable + parameters: + - $ref: '#/components/parameters/AccountHeader' + security: + - x-api-key: [] + requestBody: + $ref: '#/components/requestBodies/BackstageEnvVariableRequest' + x-internal: true + tags: + - BackstageEnvVariable + /v1/backstage-env-variables/sync: + put: + summary: Sync Backstage Environment Variables + operationId: sync-backstage-env-variables + description: Synchronize all backstage environment variables mapping for a given account + x-internal: true + parameters: + - $ref: '#/components/parameters/AccountHeader' + security: + - x-api-key: [] + responses: + '204': + description: No Content + tags: + - BackstageEnvVariable + '/v1/backstage-env-variables/{backstage-env-variable}': + parameters: + - $ref: '#/components/parameters/BackstageEnvVariable' + get: + summary: Get Backstage Environment Variable + responses: + '200': + $ref: '#/components/responses/BackstageEnvVariableResponse' + operationId: get-backstage-env-variable + description: Get backstage environment variable mapping for a given backstage env variable + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + x-internal: true + tags: + - BackstageEnvVariable + put: + summary: Updates a backstage env variable + operationId: update-backstage-env-variable + responses: + '200': + $ref: '#/components/responses/BackstageEnvVariableResponse' + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + $ref: '#/components/requestBodies/BackstageEnvVariableRequest' + description: Updates the specified backstage env variable + x-internal: true + tags: + - BackstageEnvVariable + delete: + summary: Deletes a backstage env variable + operationId: delete-backstage-env-variable + description: Deletes the requested backstage env variable + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + x-internal: true + responses: + '204': + description: No Content + tags: + - BackstageEnvVariable + /v1/backstage-env-variables/batch: + post: + summary: Creates Multiple backstage env variables + operationId: create-backstage-env-variables + responses: + '201': + $ref: '#/components/responses/BackstageEnvVariableResponseList' + description: Creates multiple backstage env variables + x-internal: true + requestBody: + $ref: '#/components/requestBodies/BackstageEnvVariableBatchRequest' + parameters: + - $ref: '#/components/parameters/AccountHeader' + security: + - x-api-key: [] + tags: + - BackstageEnvVariable + put: + summary: Updates Multiple backstage env variables + operationId: update-backstage-env-variables + responses: + '200': + $ref: '#/components/responses/BackstageEnvVariableResponseList' + description: Updates the multiple backstage env variables specified in the request + x-internal: true + security: + - x-api-key: [] + requestBody: + $ref: '#/components/requestBodies/BackstageEnvVariableBatchRequest' + parameters: + - $ref: '#/components/parameters/AccountHeader' + tags: + - BackstageEnvVariable + delete: + summary: Deletes Multiple backstage env variables + operationId: delete-backstage-env-variables + responses: + '204': + description: No Content + description: Deletes the multiple backstage env variables specified in the request + x-internal: true + security: + - x-api-key: [] + parameters: + - schema: + type: array + items: + type: string + in: query + name: backstage-env-variable + description: Identifier field of backstage env variable + - $ref: '#/components/parameters/AccountHeader' + tags: + - BackstageEnvVariable + /v1/backstage-env-variables/resolve: + get: + summary: Resolve Backstage Environment Variables + tags: + - BackstageEnvVariable + responses: + '200': + $ref: '#/components/responses/ResolvedEnvVariableResponse' + operationId: resolve-backstage-env-variables + description: Returns a list of backstage env variables with their decrypted values for the given account + x-internal: true + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/Namespace' + security: + - x-api-key: [] + '/v1/backstage-env-variables/reload/{namespace}': + put: + summary: Reload backstage env variables + operationId: reload-backstage-env-variables + responses: + '204': + description: No Content + x-stoplight: + id: 2atylhkq79myt + description: Reload backstage env variables + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + tags: + - BackstageEnvVariable + parameters: + - $ref: '#/components/parameters/NamespacePathParam' + /v1/backstage-permissions: + get: + summary: Get Backstage Permissions + responses: + '200': + $ref: '#/components/responses/BackstagePermissionsResponse' + operationId: get-backstage-permissions + parameters: + - $ref: '#/components/parameters/AccountHeader' + description: Get all backstage permissions for a given account + security: + - x-api-key: [] + x-internal: true + tags: + - BackstagePermissions + post: + summary: Create backstage Permissions + operationId: create-backstage-permissions + responses: + '201': + $ref: '#/components/responses/BackstagePermissionsResponse' + description: Creates backstage Permissions for a given account + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + $ref: '#/components/requestBodies/BackstagePermissionsRequest' + x-internal: true + tags: + - BackstagePermissions + put: + summary: Updates Backstage Permission + operationId: update-backstage-permissions + responses: + '200': + $ref: '#/components/responses/BackstagePermissionsResponse' + description: Update Backstage Permission + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + x-internal: true + requestBody: + $ref: '#/components/requestBodies/BackstagePermissionsRequest' + tags: + - BackstagePermissions + '/v1/status-info/{type}': + parameters: + - $ref: '#/components/parameters/StatusType' + get: + summary: Gets Status Info by type + tags: + - StatusInfo + operationId: get-status-info-by-type + description: Get status info for the given type + parameters: + - $ref: '#/components/parameters/AccountHeader' + security: + - x-api-key: [] + responses: + '200': + $ref: '#/components/responses/StatusInfoResponse' + x-internal: true + post: + summary: Saves Status Info by type + tags: + - StatusInfo + operationId: save-status-info-by-type + responses: + '201': + $ref: '#/components/responses/StatusInfoResponse' + description: Saves status info for the given type + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + $ref: '#/components/requestBodies/StatusInfoRequest' + x-internal: true + /v2/status-info/{type}: + get: + summary: Get Status Info by type + description: Get Status Info for the given type + tags: + - StatusInfoV2 + responses: + '200': + $ref: '#/components/responses/StatusInfoResponseV2' + operationId: get-status-info-type-v2 + x-stoplight: + id: g2rre6x1jk36w + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/StatusType' + security: + - x-api-key: [] + x-internal: true + /v1/namespace-info: + get: + summary: Get Namespace Info + responses: + '200': + $ref: '#/components/responses/NamespaceResponse' + operationId: get-namespace-info + description: Get the corresponding customer namepsace using account id. + x-internal: true + security: + - x-api-key: [] + tags: + - Namespace + parameters: + - $ref: '#/components/parameters/AccountHeader' + post: + summary: Create Namespace + operationId: create-namespace + description: Create Namespace from accountId + security: + - x-api-key: [] + x-internal: true + responses: + '200': + $ref: '#/components/responses/NamespaceResponse' + tags: + - Namespace + parameters: + - $ref: '#/components/parameters/AccountHeader' + '/v1/account-info/{namespace}': + get: + summary: Get Account Info + responses: + '200': + $ref: '#/components/responses/NamespaceResponse' + operationId: get-account-for-namespace + description: Get account information for given namespace + security: + - x-api-key: [] + tags: + - AccountInfo + x-internal: true + parameters: + - schema: + type: string + name: namespace + description: Backstage Namespace + in: path + required: true + /v1/provision-idp: + post: + summary: Provision IDP + operationId: provision-idp + responses: + '200': + $ref: '#/components/responses/NamespaceResponse' + tags: + - Provision + description: Provision IDP for given account + security: + - x-api-key: [] + x-internal: true + parameters: + - $ref: '#/components/parameters/AccountHeader' + /v1/onboarding/harness-entities: + get: + summary: Get Harness Entities + operationId: get-harness-entities + responses: + '200': + $ref: '#/components/responses/HarnessEntitiesResponse' + tags: + - OnboardingResource + x-internal: true + description: Get Harness Entities + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/Page' + - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Sort' + - $ref: '#/components/parameters/Order' + - $ref: '#/components/parameters/SearchTerm' + - schema: + type: string + in: query + name: project_to_filter + description: This would be used to filter resources having attributes matching the project filter. + /v1/onboarding/harness-entities-count: + get: + summary: Get Harness Entities Count + operationId: get-harness-entities-count + responses: + '200': + $ref: '#/components/responses/HarnessEntitiesCountResponse' + description: Get Harness Entities Count + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + tags: + - OnboardingResource + x-internal: true + /v1/onboarding/import-harness-entities: + post: + summary: Import Harness Entities to IDP + operationId: import-harness-entities + description: Import Harness Entities to IDP + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + $ref: '#/components/requestBodies/ImportHarnessEntitiesRequest' + tags: + - OnboardingResource + responses: + '200': + $ref: '#/components/responses/ImportEntitiesResponse' + x-internal: true + /v1/layout: + get: + summary: List Layouts + responses: + '200': + $ref: '#/components/responses/LayoutResponse' + operationId: get-all-layouts + x-internal: true + description: Get all layouts + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + tags: + - LayoutProxy + post: + summary: Create layout + operationId: create-layout + responses: + '200': + $ref: '#/components/responses/LayoutResponse' + description: Create layout + x-internal: true + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + tags: + - LayoutProxy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LayoutRequest' + delete: + summary: Delete layout + operationId: delete-layout + responses: + '204': + description: No Content + description: Delete layout + x-internal: true + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + tags: + - LayoutProxy + requestBody: + $ref: '#/components/requestBodies/LayoutRequest' + '/v1/layout/{layout-identifier}': + get: + summary: Get layout + responses: + '200': + $ref: '#/components/responses/LayoutResponse' + operationId: get-layout + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + tags: + - LayoutProxy + description: Get Layout + x-internal: true + parameters: + - $ref: '#/components/parameters/LayoutIdentifier' + /v1/layout/health: + get: + summary: Get Layout Health + responses: + '200': + $ref: '#/components/responses/LayoutResponse' + operationId: get-layout-health + description: Get Layout Health + x-internal: true + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + tags: + - LayoutProxy + '/v1/plugin-toggle/{plugin-id}': + post: + summary: Toggle Plugin + operationId: toggle-plugin-for-account + description: Toggle Backstage Plugin + responses: + '200': + $ref: '#/components/responses/AppConfigResponse' + parameters: + - schema: + type: string + in: header + name: Harness-Account + description: 'Identifier field of the account the resource is scoped to. This is required for Authorization methods other than the x-api-key header. If you are using the x-api-key header, this can be skipped.' + - $ref: '#/components/parameters/Enabled' + security: + - x-api-key: [] + tags: + - AppConfig + x-internal: false + parameters: + - $ref: '#/components/parameters/PluginId' + /v1/plugins-info: + get: + summary: List Available Plugins + tags: + - PluginInfo + responses: + '200': + $ref: '#/components/responses/PluginInfoResponseList' + operationId: get-plugins + description: Get all plugins available + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + x-internal: false + post: + summary: Save custom plugin info + operationId: save-custom-plugins-info + responses: + '201': + $ref: '#/components/responses/CustomPluginInfoResponse' + x-stoplight: + id: t4vsvfeuf169r + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + $ref: '#/components/requestBodies/CustomPluginCreateRequest' + tags: + - PluginInfo + '/v1/plugins-info/{plugin-id}': + get: + summary: Get Plugin + tags: + - PluginInfo + responses: + '200': + $ref: '#/components/responses/PluginDetailedInfoResponse' + operationId: get-plugins-info-plugin-id + description: Get plugin details for given pluginId + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/Meta' + x-internal: false + put: + summary: Update custom plugin info + operationId: update-custom-plugins-info + responses: + '200': + $ref: '#/components/responses/CustomPluginInfoResponse' + x-stoplight: + id: jt3xnyhpgnfe9 + security: + - x-api-key: [] + requestBody: + $ref: '#/components/requestBodies/CustomPluginInfoRequest' + tags: + - PluginInfo + parameters: + - $ref: '#/components/parameters/AccountHeader' + parameters: + - $ref: '#/components/parameters/PluginId' + delete: + summary: Delete custom plugin info + operationId: delete-custom-plugin-info + responses: + '204': + description: No Content + x-stoplight: + id: 1brpcp6chep0j + x-internal: true + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + tags: + - PluginInfo + /v1/app-config: + post: + summary: Save Or Update Plugin Config + operationId: save-or-update-plugin-app-config + description: Save or Update Plugin Config + responses: + '200': + $ref: '#/components/responses/AppConfigResponse' + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + $ref: '#/components/requestBodies/AppConfigRequest' + x-internal: false + tags: + - AppConfig + /v1/connectors-info: + get: + summary: List Connectors Info + tags: + - ConnectorInfo + responses: + '200': + $ref: '#/components/responses/ConnectorInfoResponseList' + operationId: get-connectors-info + description: Get all connectors info + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + x-internal: true + /v1/connector-info: + get: + summary: Get Connector Info + tags: + - ConnectorInfo + operationId: get-connector-info + responses: + '200': + $ref: '#/components/responses/ConnectorInfoResponse' + description: Get Connector Info + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + x-internal: false + post: + summary: Create or Update Connector Info + tags: + - ConnectorInfo + operationId: save-connector-info + responses: + '201': + $ref: '#/components/responses/ConnectorInfoResponse' + description: Create or update connector info + parameters: + - $ref: '#/components/parameters/AccountHeader' + security: + - x-api-key: [] + requestBody: + $ref: '#/components/requestBodies/ConnectorInfoRequest' + x-internal: false + '/v1/connector-info/{provider-type}': + get: + summary: Get Connector Info by Provider Type + tags: + - ConnectorInfo + responses: + '200': + $ref: '#/components/responses/ConnectorInfoResponse' + operationId: get-connector-info-by-providerType + description: Get connector info by connector provider type + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/ProviderType' + x-internal: false + /v1/merged-plugins-config: + get: + summary: Retrieve Merged Config for Enabled Plugins. + responses: + '200': + $ref: '#/components/responses/MergedPluginConfigResponse' + operationId: get-merged-plugins-config + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + x-internal: true + description: API for retriving merged configs for enabled plugin of account. + tags: + - MergedPluginsConfig + /v1/backstage-plugins-info: + get: + summary: List Available Backstage Plugins + tags: + - PluginInfo + responses: + '200': + $ref: '#/components/responses/PluginInfoResponseList' + operationId: get-backstage-plugins + description: Get all backstage plugins available + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + x-internal: true + /v1/plugin/request: + post: + summary: Request for a Plugin + operationId: post-plugin-request + responses: + '201': + description: Created + tags: + - PluginInfo + description: Request for a Plugin + x-internal: false + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + $ref: '#/components/requestBodies/RequestPluginRequest' + get: + summary: Get all plugin requests for an account + operationId: get-plugin-request + responses: + '200': + $ref: '#/components/responses/PluginRequestResponseList' + tags: + - PluginInfo + x-internal: false + description: Get all plugin requests for an account + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/Page' + - $ref: '#/components/parameters/Limit' + /v1/layout/ingest: + post: + summary: Ingest plugin layout + operationId: layout-ingest + responses: + '200': + $ref: '#/components/responses/LayoutResponse' + tags: + - LayoutProxy + description: Ingest plugin layout + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LayoutIngestRequest' + /v1/sync-app-config: + put: + summary: Sync merged app-config for a given account + operationId: sync-app-config + responses: + '204': + description: No Content + description: API to sync app-config for a given account. This API can be accessed by Support User only. + x-internal: true + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - schema: + type: boolean + in: query + name: base_config + description: Set true to sync base app-config too + tags: + - MergedPluginsConfig + /v1/onboarding/generate-yaml: + post: + summary: Generate YAML Definition for entity + operationId: onboarding-generate-yaml + responses: + '200': + $ref: '#/components/responses/GenerateYamlResponse' + tags: + - OnboardingResource + x-internal: true + description: Generate YAML Definition for entity + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + $ref: '#/components/requestBodies/GenerateYamlRequest' + '/v1/auth-info/{auth-id}': + get: + summary: Get Auth Info + tags: + - AuthInfo + responses: + '200': + $ref: '#/components/responses/AuthInfoResponse' + operationId: get-auth-info-auth-id + description: Get auth details for given authId + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/AuthId' + x-internal: true + post: + summary: Save Auth Info + tags: + - AuthInfo + operationId: save-auth-info-auth-id + responses: + '201': + $ref: '#/components/responses/BackstageEnvVariableResponseList' + description: Save auth details for given authId + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/AuthId' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BackstageEnvVariableBatchRequest' + /v1/allow-list: + get: + summary: Get backend url allow list + tags: + - AllowList + responses: + '200': + $ref: '#/components/responses/AllowListResponse' + operationId: get-allow-list + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + x-internal: false + description: Get backend url allow list + post: + summary: Save backend url allow list + description: Save backend url allow list + tags: + - AllowList + operationId: save-allow-list + responses: + '201': + $ref: '#/components/responses/AllowListResponse' + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AllowListRequest' + description: Save backend url allow list + /v1/configuration-entities: + put: + summary: Updates entities present in the configuration screen + operationId: update-configuration-entities + responses: + '200': + $ref: '#/components/responses/ConfigurationEntitiesResponse' + description: Updates entities present in the configuration screen + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + $ref: '#/components/requestBodies/ConfigurationEntitiesRequest' + x-internal: true + tags: + - MergedPluginsConfig + x-stoplight: + id: 67gwj4u4mz6nb + /v1/data-sources: + get: + summary: Get Datasources Present In Account + tags: + - DataSource + responses: + '200': + $ref: '#/components/responses/DataSourcesResponse' + operationId: get-all-datasources-for-account + x-stoplight: + id: vdsu1dzt8t3tz + parameters: + - $ref: '#/components/parameters/AccountHeader' + description: API for getting all the datasources present in account. + x-internal: false + security: + - x-api-key: [] + '/v1/data-sources/{data-source}/datapoints': + parameters: + - schema: + type: string + name: data-source + in: path + required: true + description: Identifier for datasource + get: + summary: Get DataPoints present in DataSources for an account + tags: + - DataSource + responses: + '200': + $ref: '#/components/responses/DatapointResponse' + operationId: get-data-points-for-data-source + x-stoplight: + id: aogrjef7pusxj + description: Get DataPoints Present in DataSources + x-internal: false + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + /v1/scores/summary: + get: + summary: Get Score Summary for Scorecards + responses: + '200': + $ref: '#/components/responses/ScorecardSummaryInfoResponse' + operationId: get-all-scorecard-summary + x-stoplight: + id: 6hoo6kwpvy1p8 + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/EntityIdentifier' + x-internal: false + tags: + - Scores + parameters: [] + /v1/scores: + get: + summary: Get Scores for Scorecards + responses: + '200': + $ref: '#/components/responses/ScorecardScoreResponse' + operationId: get-scorecards-scores-overview + x-stoplight: + id: lpnl6xzlj655z + security: + - x-api-key: [] + x-internal: false + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/EntityIdentifier' + tags: + - Scores + parameters: [] + /v1/scores/aggregate: + post: + summary: Get Aggregated Scores for backstage entities + responses: + '200': + $ref: '#/components/responses/EntityScoresResponseList' + operationId: get-aggregated-scores + x-stoplight: + id: i14tbedz1cc8u + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScorecardFilter' + x-internal: false + tags: + - Scores + /v1/scores/graph: + get: + summary: Get Data for check status for graph + responses: + '200': + $ref: '#/components/responses/ScorecardGraphSummaryResponse' + operationId: get-scorecards-graphs-score-summary + x-stoplight: + id: 8pd67sxvs7wwe + x-internal: true + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/EntityIdentifier' + - schema: + type: string + in: query + name: scorecard_identifier + description: 'Identifier for scorecard ' + security: + - x-api-key: [] + tags: + - Scores + parameters: [] + /v1/scores/recalibrate: + parameters: [] + post: + summary: Trigger recalibration of scores for a scorecard + operationId: scorecard-recalibrate + responses: + '200': + $ref: '#/components/responses/ScorecardRecalibrateResponse' + x-stoplight: + id: 3px6djmawemwv + description: API for Recalibrating the score for scorecard of entity + security: + - x-api-key: [] + requestBody: + $ref: '#/components/requestBodies/ScorecardRecalibrateRequest' + parameters: + - $ref: '#/components/parameters/AccountHeader' + tags: + - Scores + /v1/checks: + get: + summary: Get all checks available + parameters: + - $ref: '#/components/parameters/CheckType' + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/Page' + - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Sort' + - $ref: '#/components/parameters/SearchTerm' + tags: + - Checks + x-stoplight: + id: fybtgv0otf34d + operationId: get-checks + description: Get all checks available + x-internal: false + security: + - x-api-key: [] + responses: + '200': + $ref: '#/components/responses/CheckResponseList' + post: + summary: Create a custom check + tags: + - Checks + operationId: create-check + responses: + '201': + $ref: '#/components/responses/DefaultSaveResponse' + x-stoplight: + id: pzk9h0n0suta2 + description: Create a custom check + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CheckDetailsRequest' + x-internal: false + '/v1/checks/{check-id}': + get: + summary: Get check details for given checkId + tags: + - Checks + responses: + '200': + $ref: '#/components/responses/CheckDetailsResponse' + operationId: get-check + x-stoplight: + id: 7n0j23984d2ep + description: Get check details for given checkId + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/CheckIdentifier' + - $ref: '#/components/parameters/CheckType' + x-internal: false + put: + summary: Update check details for given checkId + tags: + - Checks + operationId: update-check + responses: + '200': + $ref: '#/components/responses/DefaultSaveResponse' + x-stoplight: + id: e6w24mxeru0p6 + description: Update check details for given checkId + x-internal: false + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/CheckIdentifier' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CheckDetailsRequest' + delete: + summary: Delete check details for given checkId + operationId: delete-check + description: Delete check details for given checkId + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/CheckIdentifier' + - $ref: '#/components/parameters/ForceDelete' + x-internal: false + responses: + '204': + description: No Content + tags: + - Checks + x-stoplight: + id: pgtm5cqq7zqmt + '/v1/checks/{check-id}/stats': + get: + summary: Get check stats for given checkId + tags: + - Checks + responses: + '200': + $ref: '#/components/responses/CheckStatsResponse' + operationId: get-check-stats + x-stoplight: + id: x6f6yi2hkheeh + description: Get check stats for given checkId + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/CheckIdentifier' + - $ref: '#/components/parameters/CheckType' + '/v1/checks/{check-id}/graph': + get: + summary: Get check graph data for given checkId + tags: + - Checks + responses: + '200': + $ref: '#/components/responses/CheckGraphResponse' + operationId: get-check-graph + x-stoplight: + id: x6f6yi2hkheeh + description: Get check graph data for given checkId + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/CheckIdentifier' + - $ref: '#/components/parameters/CheckType' + /v1/scorecards: + get: + summary: Get all scorecards available + tags: + - Scorecards + responses: + '200': + $ref: '#/components/responses/ScorecardResponseList' + operationId: get-scorecards + x-stoplight: + id: sd1pqx1g9pu0o + description: Get all scorecards available + x-internal: false + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + post: + summary: Create scorecard + tags: + - Scorecards + operationId: create-scorecard + responses: + '201': + $ref: '#/components/responses/DefaultSaveResponse' + x-stoplight: + id: 7ky7v205witp4 + description: Create scorecard + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScorecardDetailsRequest' + x-internal: false + '/v1/scorecards/{scorecard-id}': + get: + summary: Get scorecard details for given scorecardId + tags: + - Scorecards + responses: + '200': + $ref: '#/components/responses/ScorecardDetailsResponse' + operationId: get-scorecard + description: Get scorecard details for given scorecardId + x-internal: false + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/ScorecardIdentifier' + x-stoplight: + id: 7q992jg8e5lre + put: + summary: Update scorecard details for given scorecardId + tags: + - Scorecards + operationId: update-scorecard + responses: + '200': + $ref: '#/components/responses/DefaultSaveResponse' + x-stoplight: + id: zfrmn6vx8zk2x + description: Update scorecard details for given scorecardId + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/ScorecardIdentifier' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScorecardDetailsRequest' + x-internal: false + delete: + summary: Delete scorecard details for given scorecardId + operationId: delete-scorecard + description: Delete scorecard details for given scorecardId + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/ScorecardIdentifier' + x-internal: false + responses: + '204': + description: No Content + tags: + - Scorecards + x-stoplight: + id: t4gtsw95rgoh8 + '/v1/scorecards/{scorecard-id}/stats': + get: + summary: Get scorecard stats for given scorecardId + tags: + - Scorecards + responses: + '200': + $ref: '#/components/responses/ScorecardStatsResponse' + operationId: get-scorecard-stats + x-stoplight: + id: y6e6yo2hkheeh + description: Get scorecard stats for given scorecardId + security: + - x-api-key: [ ] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/ScorecardIdentifier' + /v1/entity-facets: + get: + summary: Get all entity facets for given kind + tags: + - Scorecards + responses: + '200': + $ref: '#/components/responses/FacetsResponse' + operationId: get-entity-facets + x-stoplight: + id: 8fjdnw2gtfpr7 + description: Get all entity facets for given kind + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + - $ref: '#/components/parameters/CatalogKind' + /v1/data-sources/harness/data-point/values: + parameters: [] + post: + summary: Get data points data for harness data source + operationId: get-harness-data-point-values + responses: + '200': + $ref: '#/components/responses/DataSourceDataPointInfoResponse' + x-stoplight: + id: fv69lcewj02rp + parameters: + - $ref: '#/components/parameters/AccountHeader' + security: + - x-api-key: [] + requestBody: + $ref: '#/components/requestBodies/DataSourceDataPointInfoRequest' + x-internal: true + tags: + - HarnessDataPoints + /v1/data-sources/data-points/map: + get: + summary: Get Data Sources and Data Points Map for Account + tags: + - DataSource + responses: + '200': + $ref: '#/components/responses/DataSourceDataPointsMapResponse' + operationId: get-data-sources-data-points-map + x-stoplight: + id: hxskmevkt524r + description: API for getting the map of data sources and data points for account + x-internal: false + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + /v1/data-sources/kubernetes/data-point/values: + post: + summary: Get data points data for kubernetes data source + operationId: get-k8s-data-point-values + tags: + - KubernetesDataPoints + responses: + '200': + $ref: '#/components/responses/DataSourceDataPointInfoResponse' + x-stoplight: + id: 9fg71j8suvpxn + requestBody: + $ref: '#/components/requestBodies/KubernetesConfigRequest' + parameters: + - $ref: '#/components/parameters/AccountHeader' + security: + - x-api-key: [] + /v1/data-sources/scm/data-point/values: + post: + summary: Get data points data for scm data source + operationId: get-scm-data-point-values + tags: + - ScmDataPoints + responses: + '200': + $ref: '#/components/responses/DataSourceDataPointInfoResponse' + x-stoplight: + id: 9fi72j8suwpyn + requestBody: + $ref: '#/components/requestBodies/ScmConfigRequest' + parameters: + - $ref: '#/components/parameters/AccountHeader' + security: + - x-api-key: [] + /v1/license/usage/save: + post: + summary: Save IDP module license usage + operationId: idp-license-usage-save + responses: + '200': + $ref: '#/components/responses/LicenseUsageSaveResponse' + x-stoplight: + id: 7ptx9noskc4vz + x-internal: true + description: Save IDP module license usage + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + tags: + - LicenseUsageResource + requestBody: + $ref: '#/components/requestBodies/LicenseUsageSaveRequest' + /v2/scores/recalibrate: + post: + summary: Trigger recalibration of scores for a scorecard + operationId: scorecard-recalibrate-v2 + responses: + '202': + $ref: '#/components/responses/ScorecardRecalibrateResponseV2' + x-stoplight: + id: 7bibsplzghpox + description: API for triggering score recalibration for a scorecard + tags: + - ScoresV2 + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + $ref: '#/components/requestBodies/ScorecardRecalibrateRequest' + x-internal: true + /v1/scores/recalibrate/status: + get: + summary: Get score recalibration status + tags: + - Scores + responses: + '200': + $ref: '#/components/responses/ScorecardRecalibrateResponseV2' + operationId: get-scores-recalibrate-status + x-stoplight: + id: 2qlp5rle9cmv8 + description: Get status of score computation request + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + requestBody: + $ref: '#/components/requestBodies/ScorecardRecalibrateRequest' + x-internal: true + parameters: [] + /v1/backstage-harness/sync: + post: + summary: Sync Backstage Entities as Harness Entities for all IDP enabled accounts + tags: + - BackstageHarness + responses: + '200': + $ref: '#/components/responses/BackstageHarnessSyncEntitiesResponse' + operationId: backstage-harness-sync-all-accounts + description: Syncs Backstage Entities as Harness Entities for all IDP enabled accounts + x-internal: true + security: + - x-api-key: [] + /v1/backstage-harness/sync/for-account: + post: + summary: Sync Backstage Entities as Harness Entities for given account + tags: + - BackstageHarness + responses: + '200': + $ref: '#/components/responses/BackstageHarnessSyncEntitiesResponse' + operationId: backstage-harness-sync-for-account + description: Syncs Backstage Entities as Harness Entities for given account + x-internal: true + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' + /v1/backstage-harness/sync/for-entity: + post: + summary: Sync Backstage entity as Harness entity for given account and entity with specified action and sync mode + tags: + - BackstageHarness + requestBody: + $ref: '#/components/requestBodies/BackstageHarnessSyncRequest' + responses: + '200': + $ref: '#/components/responses/BackstageHarnessSyncEntitiesResponse' + operationId: backstage-harness-sync-for-account-entity + description: Sync Backstage entity as Harness entity for given account and entity with specified action and sync mode + x-internal: true + security: + - x-api-key: [] + parameters: + - $ref: '#/components/parameters/AccountHeader' +components: + schemas: + BackstageEnvVariable: + title: BackstageEnvVariable + x-stoplight: + id: nxqrkraenk753 + type: object + description: Backstage Env Variable + discriminator: + propertyName: type + mapping: + Config: '#/components/schemas/BackstageEnvConfigVariable' + Secret: '#/components/schemas/BackstageEnvSecretVariable' + x-examples: {} + properties: + identifier: + type: string + x-stoplight: + id: qcqog9dhfhhtn + env_name: + type: string + x-stoplight: + id: 0br1k8e9y4vds + created: + type: integer + x-stoplight: + id: jnkz49ajqu2ep + format: int64 + updated: + type: integer + x-stoplight: + id: f7vn66lecbehz + format: int64 + type: + type: string + x-stoplight: + id: bkpapdothjik6 + description: This specifies the type of backstage env variable + enum: + - Config + - Secret + required: + - env_name + - type + BackstageEnvSecretVariable: + title: BackstageEnvSecretVariable + x-stoplight: + id: 3h8ht8pko3bgz + x-discriminator-value: Secret + allOf: + - $ref: '#/components/schemas/BackstageEnvVariable' + x-stoplight: + id: qv79339cmwg5d + - type: object + properties: + type: + type: string + enum: + - Secret + harness_secret_identifier: + type: string + x-stoplight: + id: ah15yig0jo9yb + is_deleted: + type: boolean + x-stoplight: + id: uvmj7ylwufxzc + default: false + required: + - type + - harness_secret_identifier + x-examples: {} + BackstageEnvConfigVariable: + title: BackstageEnvConfigVariable + x-stoplight: + id: cfxzxi44zeq3o + x-discriminator-value: Config + allOf: + - $ref: '#/components/schemas/BackstageEnvVariable' + x-stoplight: + id: x9612fuvup1yq + - type: object + properties: + type: + type: string + enum: + - Config + value: + type: string + x-stoplight: + id: ae2vnipczbvso + required: + - type + - value + x-examples: {} + BackstageEnvVariableRequest: + x-stoplight: + id: e7t9o0ci4dra4 + type: object + properties: + env_variable: + $ref: '#/components/schemas/BackstageEnvVariable' + x-stoplight: + id: t8p54gz9pdy56 + BackstageEnvVariableBatchRequest: + type: object + x-stoplight: + id: psykwh06yxbkz + properties: + env_variables: + x-stoplight: + id: mw78dt912nzqn + type: array + items: + $ref: '#/components/schemas/BackstageEnvVariable' + x-stoplight: + id: i0vefhckdjymq + required: + - env_variables + BackstageEnvVariableResponse: + x-stoplight: + id: np7bj0rjx6gb4 + type: object + properties: + env_variable: + $ref: '#/components/schemas/BackstageEnvVariable' + x-stoplight: + id: ru3parenuqcu1 + required: + - env_variable + BackstagePermissions: + title: BackstagePermissions + x-stoplight: + id: 72bfwtpdjs4gp + type: object + properties: + identifer: + type: string + permissions: + type: array + items: + type: string + user_group: + type: string + created: + type: integer + format: int64 + updated: + type: integer + format: int64 + BackstagePermissionsRequest: + title: BackstagePermissionsRequest + x-stoplight: + id: bz71o9x8asb9x + type: object + properties: + data: + $ref: '#/components/schemas/BackstagePermissions' + BackstagePermissionsResponse: + title: BackstagePermissionsResponse + x-stoplight: + id: 9jbg25376fnzb + type: object + properties: + data: + $ref: '#/components/schemas/BackstagePermissions' + StatusInfo: + title: StatusInfo + x-stoplight: + id: ruez3ex7rum35 + type: object + properties: + current_status: + type: string + enum: + - COMPLETED + - RUNNING + - PENDING + - FAILED + - NOT_FOUND + x-stoplight: + id: 8knrzjhaghevh + reason: + type: string + updated_at: + type: integer + format: int64 + x-stoplight: + id: 0pmjyab6nkwlz + StatusInfoResponse: + title: StatusInfoResponse + x-stoplight: + id: ve56lidgcjifs + type: object + properties: + status: + $ref: '#/components/schemas/StatusInfo' + StatusInfoRequest: + title: StatusInfoRequest + x-stoplight: + id: f45q501vlt9iy + type: object + properties: + status: + $ref: '#/components/schemas/StatusInfo' + StatusInfoV2: + title: StatusInfoV2 + x-stoplight: + id: ygx956s72iibx + type: object + additionalProperties: + $ref: '#/components/schemas/StatusInfo' + NamespaceInfo: + title: NamespaceInfo + x-stoplight: + id: sxxrqv7oorngr + type: object + description: Namespace response body content + properties: + account_identifier: + type: string + x-stoplight: + id: hg3qtosqgdfhd + namespace: + type: string + NamespaceResponse: + $ref: '#/components/schemas/NamespaceInfo' + x-stoplight: + id: 4qd30h9fn9u7r + description: Namespace response body + CatalogConnectorInfo: + title: CatalogConnectorInfo + x-stoplight: + id: wpk4fmntpbtlj + type: object + description: Details of IDP catalog connector + properties: + connector: + $ref: '#/components/schemas/ConnectorDetails' + x-stoplight: + id: gep9rdz9yhwyy + repo: + type: string + branch: + type: string + path: + type: string + required: + - connector + - repo + - branch + - path + HarnessEntitiesCountResponse: + title: HarnessEntitiesCountResponse + x-stoplight: + id: 2wzkhrjbcg4d5 + type: object + x-examples: {} + description: Response for harness entities count that can be imported to IDP + properties: + org_count: + type: integer + x-stoplight: + id: gbvcwogico9cd + project_count: + type: integer + x-stoplight: + id: h7se69ebe6tn5 + service_count: + type: integer + required: + - org_count + - project_count + - service_count + HarnessEntitiesResponse: + title: HarnessEntitiesResponse + x-stoplight: + id: fz2subwqrbh5p + type: object + x-examples: {} + description: Response for harness entities mapping with backstage entities + properties: + harness_backstage_entities: + x-stoplight: + id: 29gtwmx9rtbtj + type: array + items: + $ref: '#/components/schemas/HarnessBackstageEntities' + x-stoplight: + id: xljavofzn2x2t + required: + - harness_backstage_entities + ImportEntitiesResponse: + title: ImportEntitiesResponse + x-stoplight: + id: kvv6lxzsebamz + type: object + description: Response for import / save harness entities to IDP + properties: + status: + type: string + required: + - status + EntitiesForImport: + title: EntitiesForImport + x-stoplight: + id: ruicl5da2sloc + type: object + description: Details of Harness Entities to import + x-examples: {} + properties: + identifier: + type: string + minLength: 1 + entity_type: + type: string + required: + - identifier + - entity_type + HarnessBackstageEntities: + title: HarnessBackstageEntities + x-stoplight: + id: x43sybn2ad4n7 + type: object + description: Harness entities mapping with backstage entities + properties: + name: + type: string + system: + type: string + owner: + type: string + type: + type: string + identifier: + type: string + entity_type: + type: string + required: + - name + - system + - owner + - type + - identifier + - entity_type + ConnectorDetails: + title: ConnectorDetails + x-stoplight: + id: ydmrv3krwpyvr + type: object + properties: + identifier: + type: string + type: + type: string + enum: + - Github + - Gitlab + - Bitbucket + - AzureRepo + required: + - identifier + - type + description: Connector details containing identifier and type + LayoutResponse: + title: LayoutResponse + x-stoplight: + id: 2oxnq9iinuf3b + type: object + PluginInfo: + title: PluginInfo + x-stoplight: + id: rjdikftbwq4ku + type: object + properties: + id: + type: string + x-stoplight: + id: 08dcllgfdjnnf + name: + type: string + x-stoplight: + id: cs8sf1p0u0h6m + created_by: + type: string + x-stoplight: + id: muu0fnhfcfnq0 + icon_url: + type: string + x-stoplight: + id: qi63qdmfx4ozx + description: + type: string + x-stoplight: + id: f3f9a3v15p8qx + category: + type: string + x-stoplight: + id: 2hcvvko282w2b + source: + type: string + x-stoplight: + id: 86jybcrx3x9hy + image_url: + type: string + images: + type: array + x-stoplight: + id: tn689mqkfth94 + items: + x-stoplight: + id: ybfwwjy9ere6h + type: string + documentation: + type: string + x-stoplight: + id: g8pxx4u72mjyo + core: + type: boolean + x-stoplight: + id: h6xd4qngysrvl + enabled: + type: boolean + x-stoplight: + id: dye1mgrxvvkhj + plugin_type: + type: string + x-stoplight: + id: 3afv43ng1qibj + enum: + - DEFAULT + - CUSTOM + required: + - id + PluginInfoResponse: + title: PluginInfoResponse + x-stoplight: + id: bzim96q2jdydq + type: object + properties: + plugin: + $ref: '#/components/schemas/PluginInfo' + x-stoplight: + id: b8e9wv7c3q2hb + required: + - plugin + PluginDetailedInfoResponse: + title: PluginDetailedInfoResponse + x-stoplight: + id: yga377lrqvzo3 + type: object + properties: + plugin: + $ref: '#/components/schemas/PluginDetailedInfo' + x-stoplight: + id: bge1kvlvygjky + required: + - plugin + PluginDetailedInfo: + title: PluginDetailedInfo + x-stoplight: + id: 4mgb2xlg0qmuz + allOf: + - $ref: '#/components/schemas/PluginDetails' + - type: object + properties: + env_variables: + x-stoplight: + id: dbvndzvgirvhx + type: array + items: + $ref: '#/components/schemas/BackstageEnvSecretVariable' + saved: + type: boolean + x-stoplight: + id: zc7gzaskute7h + proxy: + x-stoplight: + id: iihf5kiywsyft + type: array + items: + $ref: '#/components/schemas/ProxyHostDetail' + required: + - env_variables + - saved + LayoutRequest: + title: LayoutRequest + x-stoplight: + id: n3rez2nr7kmq8 + type: object + description: LayoutRequest + properties: + name: + type: string + x-stoplight: + id: 62gmaga7buqi8 + id: + type: string + x-stoplight: + id: z450ysix2zvwr + yaml: + type: string + x-stoplight: + id: ukdiglik4ggu9 + display_name: + type: string + x-stoplight: + id: s2pk8alyj2gu9 + default_yaml: + type: string + x-stoplight: + id: phhefjzpsdh1n + type: + type: string + x-stoplight: + id: i20q57lnsmop8 + AppConfig: + title: AppConfig + x-stoplight: + id: ts8hhn08e9vs2 + type: object + x-examples: {} + properties: + config_id: + type: string + x-stoplight: + id: kba02ulkoob1v + configs: + type: string + x-stoplight: + id: xu807wjtsvqdt + enabled: + type: boolean + x-stoplight: + id: ogzhdfovajswl + enabled_disabled_at: + type: integer + x-stoplight: + id: 8j2nftcvualpg + format: int64 + created: + type: integer + x-stoplight: + id: i50aktg8l2epd + format: int64 + updated: + type: integer + x-stoplight: + id: gal7ubavtkx3x + format: int64 + env_variables: + type: array + x-stoplight: + id: mc8b52k1x79v6 + items: + $ref: '#/components/schemas/BackstageEnvSecretVariable' + config_name: + type: string + x-stoplight: + id: 78nnii26gge61 + proxy: + type: array + x-stoplight: + id: 1lk21ekhaopkw + items: + $ref: '#/components/schemas/ProxyHostDetail' + required: + - config_id + - configs + - env_variables + - config_name + AppConfigRequest: + title: AppConfigRequest + x-stoplight: + id: 8u5xpqsuu97n7 + type: object + properties: + app_config: + $ref: '#/components/schemas/AppConfig' + x-stoplight: + id: qrcvsst79yc3s + required: + - app_config + AppConfigResponse: + title: AppConfigResponse + x-stoplight: + id: mc5yfk7d3r4ba + type: object + properties: + app_config: + $ref: '#/components/schemas/AppConfig' + x-stoplight: + id: puouuvu1gjvy9 + required: + - app_config + ConnectorInfoRequest: + title: ConnectorInfoRequest + x-stoplight: + id: 5y4kxxar10u79 + type: object + properties: + connector_details: + $ref: '#/components/schemas/ConnectorDetails' + x-stoplight: + id: cwhdaxsijquis + ConnectorInfoResponse: + title: ConnectorInfoResponse + x-stoplight: + id: crky8aoeysb9z + type: object + properties: + connector_details: + $ref: '#/components/schemas/ConnectorDetails' + x-stoplight: + id: j9y6qs9p3gym7 + required: + - connector_details + Exports: + title: Exports + x-stoplight: + id: krtrvpv2bw4rh + type: object + properties: + pages: + type: integer + x-stoplight: + id: z2sng2p0ckvs4 + default: 0 + tab_contents: + type: integer + x-stoplight: + id: tv8hce8pm873b + default: 0 + cards: + type: integer + x-stoplight: + id: gvkk56i32twnh + default: 0 + default_entity_types: + type: array + x-stoplight: + id: jfdg348v4fwk7 + items: + x-stoplight: + id: zvqn4vs5z9xa8 + type: string + export_details: + x-stoplight: + id: entxahp0fgx74 + type: array + items: + $ref: '#/components/schemas/ExportDetails' + x-stoplight: + id: 0sb28udqqiknj + required: + - pages + - tab_contents + - cards + - default_entity_types + - export_details + MergedPluginConfigs: + title: MergedPluginConfigs + x-stoplight: + id: udd3rjj6vabp6 + type: object + description: Merged Config for all Enabled Plugins. + properties: + config: + type: string + x-stoplight: + id: 1xlvst25jqan6 + env_variables: + type: array + x-stoplight: + id: 626hhepixlmvj + items: + $ref: '#/components/schemas/BackstageEnvSecretVariable' + proxy: + type: array + x-stoplight: + id: 9nyhtn38boka8 + items: + $ref: '#/components/schemas/ProxyHostDetail' + required: + - config + - env_variables + - proxy + MergedPluginConfigResponse: + title: MergedPluginConfigResponse + x-stoplight: + id: ze6z3c1qi8cdy + type: object + description: Merged Config for all Enabled Plugins Response. + properties: + merged_config: + $ref: '#/components/schemas/MergedPluginConfigs' + x-stoplight: + id: syzo1w7sp9ent + required: + - merged_config + RequestPlugin: + x-stoplight: + id: r5zm7ltki4p8f + type: object + title: RequestPluginRequest + description: Details of the plugin being requested + properties: + name: + type: string + x-stoplight: + id: 56azi08e1q53b + creator: + type: string + x-stoplight: + id: 595gabner523j + package_link: + type: string + x-stoplight: + id: 92ietipnvu0ta + doc_link: + type: string + x-stoplight: + id: pgttm4b0sqx6l + required: + - name + - creator + - package_link + - doc_link + PluginRequestResponseList: + title: PluginRequestResponseList + x-stoplight: + id: 5yzb7rxns0aw0 + type: object + properties: + plugin_requests: + type: array + x-stoplight: + id: hi8z7q7omjfak + items: + $ref: '#/components/schemas/RequestPlugin' + x-stoplight: + id: la7xiemqky7f9 + required: + - plugin_requests + description: Returns all plugin requests for an account + ExportDetails: + title: ExportDetails + x-stoplight: + id: lh3kww6at9n87 + type: object + properties: + type: + type: string + x-stoplight: + id: 69io5n1al727m + name: + type: string + x-stoplight: + id: rk3j3ohhxfadq + add_by_default: + type: boolean + x-stoplight: + id: yv6e7c9c2eyv6 + default_route: + type: string + x-stoplight: + id: lg3iy2r2zvqhb + layout_schema_specs: + type: object + x-stoplight: + id: kqd59lko12kls + required: + - type + - name + PluginDetails: + title: PluginDetails + x-stoplight: + id: 560styu7fppwf + type: object + properties: + plugin_details: + $ref: '#/components/schemas/PluginInfo' + x-stoplight: + id: ar7hkpjerml0u + config: + type: string + x-stoplight: + id: 4yr6y6r9zxzdi + exports: + $ref: '#/components/schemas/Exports' + x-stoplight: + id: 43cv9jhplzytw + required: + - plugin_details + LayoutIngestRequest: + title: LayoutIngestRequest + x-stoplight: + id: 2251c3uansb5q + type: object + properties: + operation_type: + type: string + x-stoplight: + id: gcfmlu2g6tt5c + exports: + $ref: '#/components/schemas/Exports' + required: + - operation_type + - exports + GenerateYamlRequest: + title: GenerateYamlRequest + x-stoplight: + id: cn0x8iu87ivzy + type: object + properties: + entities: + type: array + x-stoplight: + id: 8o9n97v686wpz + items: + $ref: '#/components/schemas/EntitiesForImport' + x-stoplight: + id: rx3oubfzkg2hs + required: + - entities + description: Request to generate yaml for any one entity if provided or generate sample entity yaml definition + GenerateYamlResponse: + title: GenerateYamlResponse + x-stoplight: + id: fqxr0lo87mlj0 + type: object + description: Response contianing entity yaml definition and description about the entity + properties: + generated_yaml: + type: object + x-stoplight: + id: hjwmleg6046p3 + required: + - yaml_def + - description + properties: + yaml_def: + type: string + x-stoplight: + id: qotajwzqf534c + description: + type: string + x-stoplight: + id: 3p4vjjkwbtd5y + required: + - generated_yaml + x-examples: {} + AllEntitiesImport: + title: AllEntitiesImport + x-stoplight: + id: 3r72pc3y3erap + allOf: + - $ref: '#/components/schemas/ImportEntitiesBase' + - type: object + x-stoplight: + id: 0ianrzf5ba6oh + x-discriminator-value: All + description: Import all harness entities + SampleEntitiesImport: + title: SampleEntitiesImport + x-stoplight: + id: xt3i3mxzwvw72 + description: Import sample entities + x-discriminator-value: Sample + allOf: + - $ref: '#/components/schemas/ImportEntitiesBase' + x-stoplight: + id: o9o37jc32kwzg + - type: object + x-stoplight: + id: wcobxw9zw5zd7 + IndividualEntitiesImport: + title: IndividualEntitiesImport + x-stoplight: + id: 7xwaog4uuvc4o + x-discriminator-value: Individual + description: Import selected harness entities + allOf: + - $ref: '#/components/schemas/ImportEntitiesBase' + - type: object + x-stoplight: + id: v6vwz8qkzfhb0 + properties: + entities: + x-stoplight: + id: 5x3bh3crbn9pk + type: array + items: + $ref: '#/components/schemas/EntitiesForImport' + x-stoplight: + id: 86duhaoxpz5b8 + required: + - entities + ImportEntitiesBase: + title: ImportEntitiesBase + x-stoplight: + id: 3rlp8p98fnstv + type: object + description: Abstract base for import entities + discriminator: + propertyName: type + mapping: + All: '#/components/schemas/AllEntitiesImport' + Individual: '#/components/schemas/IndividualEntitiesImport' + Sample: '#/components/schemas/SampleEntitiesImport' + properties: + type: + type: string + x-stoplight: + id: z551lvgusdf0y + enum: + - All + - Individual + - Sample + catalog_connector_info: + $ref: '#/components/schemas/CatalogConnectorInfo' + x-stoplight: + id: ir8u1tzc1jeti + required: + - type + - catalog_connector_info + AuthInfoResponse: + title: AuthInfoResponse + x-stoplight: + id: ctsz2r10gqssu + type: object + properties: + authInfo: + $ref: '#/components/schemas/AuthInfo' + required: + - authInfo + AuthInfo: + title: AuthInfo + x-stoplight: + id: 4ei89ktvaipss + type: object + properties: + namespace: + x-stoplight: + id: ewnnxtnilgp7l + type: string + env_variables: + x-stoplight: + id: l3t9hclkkyyra + type: array + items: + $ref: '#/components/schemas/BackstageEnvVariable' + required: + - namespace + - env_variables + HostInfo: + title: HostInfo + x-stoplight: + id: 4m8jc4pxxby9f + type: object + properties: + host: + type: string + x-stoplight: + id: ji4h19dfwg66n + paths: + type: array + x-stoplight: + id: mjabx4tv4s831 + items: + x-stoplight: + id: bq9qhlppl7zi8 + type: string + required: + - host + AllowListRequest: + title: AllowListRequest + x-stoplight: + id: 5o03n024p61gx + type: object + properties: + allow: + type: array + x-stoplight: + id: jhtlvv958icdw + items: + $ref: '#/components/schemas/HostInfo' + required: + - allow + AllowListResponse: + title: AllowListResponse + x-stoplight: + id: lp085fjchryu3 + type: object + properties: + allow: + x-stoplight: + id: g0yx33mk3sgcb + type: array + items: + $ref: '#/components/schemas/HostInfo' + required: + - allow + ProxyHostDetail: + title: ProxyHostDetail + x-stoplight: + id: agl6s9vai35qw + type: object + description: Proxy Host Detail + properties: + host: + type: string + x-stoplight: + id: oudzqrxaqnkjy + proxy: + type: boolean + x-stoplight: + id: 3h03au3y87lyv + selectors: + type: array + x-stoplight: + id: jdgn49nqlp49k + items: + x-stoplight: + id: zvnhr2daor8lr + type: string + identifier: + type: string + x-stoplight: + id: soyi91ysmnt8u + pluginId: + type: string + x-stoplight: + id: 7we0dzf0ap7v7 + required: + - host + - proxy + ConfigurationEntities: + title: ConfigurationEntities + x-stoplight: + id: irav1h1h46nfk + type: object + properties: + env_variables: + type: array + x-stoplight: + id: 75xycs21qycvx + items: + $ref: '#/components/schemas/BackstageEnvVariable' + proxy: + type: array + x-stoplight: + id: cxy39vfdsd9yb + items: + $ref: '#/components/schemas/ProxyHostDetail' + required: + - env_variables + - proxy + ResolvedEnvVariable: + title: ResolvedEnvVariable + x-stoplight: + id: 76ik03lvpra6i + type: object + x-examples: + Example 1: + env_name: GITHUB_TOKEN + decrypted_value: abc + properties: + env_name: + type: string + x-stoplight: + id: koje4ebc0ae9g + decrypted_value: + type: string + x-stoplight: + id: zmpbpdmhxf3pk + ResolvedEnvVariableResponse: + title: ResolvedEnvVariableResponse + x-stoplight: + id: 2dlc8i0aobls7 + type: object + x-examples: + Example 1: + resolved_env_variable: + env_name: GITHUB_TOKEN + decrypted_value: abc + properties: + resolved_env_variables: + type: string + Check: + title: Check + x-stoplight: + id: d3s3zmsa21jqu + type: object + description: Check + properties: + identifier: + type: string + x-stoplight: + id: u2xn1u2797lk3 + name: + type: string + x-stoplight: + id: 0livvjhoy8g3l + description: + type: string + x-stoplight: + id: f7xb30y8u47he + expression: + type: string + x-stoplight: + id: 5g5fqsfh15x7r + tags: + type: array + x-stoplight: + id: mnwbadmsdi09d + items: + x-stoplight: + id: fitl6f8ktom9c + type: string + custom: + type: boolean + x-stoplight: + id: 04nibhaa1qklq + required: + - identifier + - name + - custom + x-internal: false + CheckListItem: + title: CheckListItem + x-stoplight: + id: 3t9wuamv3qncv + description: CheckListItem + allOf: + - $ref: '#/components/schemas/Check' + - type: object + x-stoplight: + id: wfv08rzs6qabm + properties: + data_source: + type: array + x-stoplight: + id: e6b90f62ht5fy + items: + x-stoplight: + id: nl4f2bigcjdmv + type: string + percentage: + type: number + x-stoplight: + id: kj6pmchmlzqn6 + format: double + minimum: 0 + maximum: 100 + required: + - data_source + x-internal: false + CheckResponse: + title: CheckResponse + x-stoplight: + id: 8mglhh62xeh5i + type: object + properties: + check: + $ref: '#/components/schemas/CheckListItem' + x-internal: false + CheckDetails: + title: CheckDetails + x-stoplight: + id: lv03ixht7mprr + allOf: + - $ref: '#/components/schemas/Check' + - type: object + properties: + rule_strategy: + x-stoplight: + id: vozvk20qb8f54 + type: string + enum: + - ALL_OF + - ANY_OF + rules: + type: array + items: + $ref: '#/components/schemas/Rule' + harness_managed: + type: boolean + x-stoplight: + id: 98xzkzfnubveg + default_behaviour: + x-stoplight: + id: cdrzuq88hk9lo + type: string + enum: + - PASS + - FAIL + fail_message: + type: string + x-stoplight: + id: mqml3k84x10ot + percentage: + type: number + x-stoplight: + id: kp6ptdhmpvqn7 + format: double + minimum: 0 + maximum: 100 + required: + - rule_strategy + - rules + - default_behaviour + x-internal: false + CheckDetailsRequest: + title: CheckDetailsRequest + x-stoplight: + id: 386kfxi3e1k1m + type: object + properties: + check_details: + $ref: '#/components/schemas/CheckDetails' + x-internal: false + CheckDetailsResponse: + title: CheckDetailsResponse + x-stoplight: + id: 1wcwdvydnld0x + type: object + properties: + check_details: + $ref: '#/components/schemas/CheckDetails' + required: + - check_details + x-internal: false + Rule: + title: Rule + x-stoplight: + id: 3heyk9rwc10qi + type: object + x-internal: false + properties: + identifier: + type: string + x-stoplight: + id: e3xw4o7mbekr2 + data_source_identifier: + type: string + x-stoplight: + id: 1vt7g30hh6uh3 + data_point_identifier: + type: string + x-stoplight: + id: g7l2155ej66ti + operator: + type: string + x-stoplight: + id: w06lgfpzf7czd + value: + type: string + x-stoplight: + id: ektxg0uwq30y7 + input_values: + type: array + x-stoplight: + id: cllifz4ua1knq + items: + $ref: '#/components/schemas/InputValue' + required: + - data_source_identifier + - data_point_identifier + - operator + - value + ScorecardChecks: + title: ScorecardChecks + x-stoplight: + id: cyvlqdjbff44c + type: object + properties: + identifier: + type: string + x-stoplight: + id: je2zi36q1g4po + weightage: + type: number + x-stoplight: + id: v58bql7f1tfs7 + format: double + custom: + type: boolean + x-stoplight: + id: bupb1l0ow77d1 + required: + - identifier + - custom + ScorecardChecksDetails: + title: ScorecardChecksDetails + x-stoplight: + id: hynxqf3tp1ysq + allOf: + - $ref: '#/components/schemas/ScorecardChecks' + - type: object + x-stoplight: + id: 12snka2hxk667 + properties: + name: + type: string + x-stoplight: + id: ntpqrqq3ymwb3 + description: + type: string + x-stoplight: + id: jlr6zyb75u9bt + required: + - name + Scorecard: + title: Scorecard + x-stoplight: + id: ck1klmib92a8q + type: object + properties: + name: + type: string + x-stoplight: + id: 0036s8sh4ovml + identifier: + type: string + x-stoplight: + id: vy3cv7a0ja9km + description: + type: string + x-stoplight: + id: 9ec2odnrqvkcm + checks: + type: array + items: + $ref: '#/components/schemas/Check' + published: + type: boolean + x-stoplight: + id: 5z7snnygtkcme + checks_missing: + type: array + x-stoplight: + id: 69qa1yprs1y5z + items: + x-stoplight: + id: 4mdevxdftzonf + type: string + components: + type: integer + x-stoplight: + id: 9ec2oenrqokcm + percentage: + type: number + x-stoplight: + id: iyqzo3vjc6kto + format: double + minimum: 0 + maximum: 100 + required: + - name + - identifier + - checks + ScorecardDetails: + title: ScorecardDetails + x-stoplight: + id: ifbfldq39cf27 + type: object + properties: + name: + type: string + identifier: + type: string + description: + type: string + filter: + $ref: '#/components/schemas/ScorecardFilter' + weightage_strategy: + type: string + x-stoplight: + id: qeeywjc4bkkda + enum: + - EQUAL_WEIGHTS + - CUSTOM + default: EQUAL_WEIGHTS + published: + type: boolean + x-stoplight: + id: qlznynr2iay1n + checks_missing: + type: array + x-stoplight: + id: gntwsigybxa08 + items: + x-stoplight: + id: 6xqs4rtf0fexq + type: string + components: + type: integer + x-stoplight: + id: 8rc2peneqokdm + percentage: + type: number + x-stoplight: + id: lzqyp3vjd6kto + format: double + minimum: 0 + maximum: 100 + required: + - name + - identifier + - filter + - published + ScorecardFilter: + title: ScorecardFilter + x-stoplight: + id: xwnr2xalsb1fv + type: object + properties: + kind: + type: string + x-stoplight: + id: ni2n6gaelw2sh + type: + type: string + x-stoplight: + id: pit0to8ng7rtl + owners: + type: array + x-stoplight: + id: ibe4axxxrnwpl + items: + x-stoplight: + id: kde7prhuw2ww2 + type: string + tags: + type: array + x-stoplight: + id: 9sqie0nb3f08d + items: + x-stoplight: + id: 8sko0og6lpbyh + type: string + lifecycle: + type: array + x-stoplight: + id: 9rtf97h3uu9z3 + items: + x-stoplight: + id: etzt6sp88w5iz + type: string + required: + - kind + - type + ScorecardResponse: + title: ScorecardResponse + x-stoplight: + id: c9gm3c9wg18qw + type: object + properties: + scorecard: + $ref: '#/components/schemas/Scorecard' + ScorecardDetailsResponse: + title: ScorecardDetailsResponse + x-stoplight: + id: 7z732csnjjs8z + type: object + properties: + scorecard: + $ref: '#/components/schemas/ScorecardDetails' + checks: + type: array + items: + $ref: '#/components/schemas/ScorecardChecksDetails' + required: + - scorecard + - checks + ScorecardDetailsRequest: + title: ScorecardDetailsRequest + x-stoplight: + id: z2l4mp8px3bsf + type: object + properties: + scorecard: + $ref: '#/components/schemas/ScorecardDetails' + checks: + type: array + x-stoplight: + id: edrtpiucltli5 + items: + $ref: '#/components/schemas/ScorecardChecks' + required: + - scorecard + - checks + Facets: + title: Facets + x-stoplight: + id: 0yxeh06749fxw + type: object + properties: + type: + type: array + x-stoplight: + id: 8zjtnynlcnjjn + items: + x-stoplight: + id: bi0jhb6t58jfk + type: string + owners: + type: array + x-stoplight: + id: ttni8vwtfjy37 + items: + x-stoplight: + id: nv9qgpkbxeyx6 + type: string + tags: + type: array + x-stoplight: + id: 35250e4csgeng + items: + x-stoplight: + id: gaxccdx1p5nq5 + type: string + lifecycle: + type: array + x-stoplight: + id: pm47xtp6sjdm9 + items: + x-stoplight: + id: r76ps8dcmup2d + type: string + required: + - type + - owners + - tags + - lifecycle + DataSource: + title: DataSource + x-stoplight: + id: rl36h4i72zwmn + type: object + description: Contains Details for Single Data source + x-internal: false + properties: + identifier: + type: string + x-stoplight: + id: q7mj2gssw1bli + name: + type: string + x-stoplight: + id: t4ls3eta9srzd + description: + type: string + x-stoplight: + id: cbkq0sja3irvh + required: + - identifier + - name + - description + DataSourcesResponse: + title: DataSourcesResponse + x-stoplight: + id: 73ueb905qy1zb + type: object + description: Response for list of data sources + properties: + data_sources: + type: array + x-stoplight: + id: fhj90jbl2h787 + items: + $ref: '#/components/schemas/DataSource' + required: + - data_sources + x-internal: false + DataPoint: + title: DataPoint + x-stoplight: + id: c7tcluzgw5cjz + type: object + description: Conatins detail for single data point + x-internal: false + properties: + type: + type: string + x-stoplight: + id: 7ravaew9405n5 + name: + type: string + x-stoplight: + id: 0i3oxc3ybop4k + description: + type: string + x-stoplight: + id: 1hkouvzjjgqn1 + data_point_identifier: + type: string + x-stoplight: + id: ytmctby35eehe + detailed_description: + type: string + x-stoplight: + id: ktfl6zmiaxrv8 + input_details: + type: array + x-stoplight: + id: 7gpxma8wy54sh + items: + $ref: '#/components/schemas/InputDetails' + required: + - type + - name + - description + - data_point_identifier + - detailed_description + DataPointsResponse: + title: DataPointResponse + x-stoplight: + id: oo360bhea35ae + type: object + description: Resposne for List of Data Points + properties: + data_points: + type: array + x-stoplight: + id: 8ibklj43876jd + items: + $ref: '#/components/schemas/DataPoint' + required: + - data_points + x-internal: false + CheckStatus: + title: CheckStatus + x-stoplight: + id: fdrxgq2legal0 + type: object + description: Info for single check status + x-internal: false + properties: + reason: + type: string + x-stoplight: + id: a55tfumwxdws2 + identifier: + type: string + x-stoplight: + id: def12dcql6nng + name: + type: string + x-stoplight: + id: hgm12dcql6uny + custom: + type: boolean + x-stoplight: + id: 05nibebb1qklq + status: + type: string + x-stoplight: + id: zz8q5jgf52oex + enum: + - PASS + - FAIL + weight: + type: integer + x-stoplight: + id: 4onn2ugf7eag2 + required: + - name + - status + - weight + ScorecardSummaryInfo: + title: ScorecardSummaryInfo + x-stoplight: + id: pay6aezj4d31h + type: object + description: Scorecard score calculation summary info + x-internal: false + properties: + scorecard_name: + type: string + x-stoplight: + id: 9mygzdf55ojhx + timestamp: + type: integer + x-stoplight: + id: t8nvwtsz37o45 + format: int64 + score: + type: integer + x-stoplight: + id: n3owkfarff0z1 + checks_statuses: + type: array + x-stoplight: + id: bq3l2ts4hqmeb + items: + $ref: '#/components/schemas/CheckStatus' + description: + type: string + x-stoplight: + id: vqndowi5uxn9y + scorecard_identifier: + type: string + x-stoplight: + id: 8ug477to6b52k + recalibrate_info: + $ref: '#/components/schemas/ScorecardRecalibrateInfo' + required: + - scorecard_name + - timestamp + - score + - checks_statuses + - description + - scorecard_identifier + ScorecardSummaryResponse: + title: ScorecardSummaryResponse + x-stoplight: + id: ynl06zzfi94rh + type: object + description: 'Response for getting list for summary of score ' + properties: + scorecards_summary: + type: array + x-stoplight: + id: 1f4kjylmzpkq8 + items: + $ref: '#/components/schemas/ScorecardSummaryInfo' + required: + - scorecards_summary + x-internal: false + ScorecardScore: + title: ScorecardScore + x-stoplight: + id: ynku3ttnf3cx6 + type: object + x-internal: false + description: Score info for single score card + properties: + score: + type: integer + x-stoplight: + id: h22nwhcbzelge + description: + type: string + x-stoplight: + id: zcv3hpqtum3sy + scorecard_name: + type: string + x-stoplight: + id: nci7recn0sy8r + required: + - score + - description + - scorecard_name + ScorecardScoreResponse: + title: ScorecardScoreResponse + x-stoplight: + id: mzt5uyu7qe0wo + type: object + x-internal: false + description: Response for getting only scores for scorecards + properties: + scorecard_scores: + type: array + x-stoplight: + id: awwxj6rf39qgz + items: + $ref: '#/components/schemas/ScorecardScore' + overall_score: + type: integer + x-stoplight: + id: d2sok8uuzgwog + required: + - scorecard_scores + - overall_score + EntityScores: + title: EntityScores + x-stoplight: + id: pm2xjutml29k8 + type: object + x-internal: false + description: Scores for each backstage entity + properties: + name: + type: string + x-stoplight: + id: c0ds57kufm40y + title: + type: string + x-stoplight: + id: 3br5wu0kv0evq + kind: + type: string + x-stoplight: + id: yyu76dpyv8le4 + namespace: + type: string + x-stoplight: + id: ndpcgr677rusf + scores: + type: array + items: + $ref: '#/components/schemas/ScorecardScore' + required: + - name + - title + - kind + - namespace + - scores + EntityScoresResponse: + title: EntityScoresResponse + x-stoplight: + id: 6jzf10wfckw9o + type: object + description: Response for each entity scores + x-internal: false + properties: + entity: + $ref: '#/components/schemas/EntityScores' + ScorecardGraphSummaryInfo: + title: ScorecardGraphSummaryInfo + x-stoplight: + id: yue93ode0kqe9 + type: object + description: Scorecard graph summary + x-internal: true + properties: + scorecard_identifier: + type: string + x-stoplight: + id: sgnwvhqpiw7w3 + timestamp: + type: integer + x-stoplight: + id: 5s7wtkrmax6su + format: int64 + score: + type: integer + x-stoplight: + id: z8oob1b8f6t8z + required: + - scorecard_identifier + - timestamp + - score + ScorecardGraphSummaryInfoResponse: + title: ScorecardGraphSummaryInfoResponse + x-stoplight: + id: 9phrnuoo1d9pe + type: object + x-internal: true + properties: + scorecard_graph_summary: + type: array + items: + $ref: '#/components/schemas/ScorecardGraphSummaryInfo' + required: + - scorecard_graph_summary + description: Response for scorecard graph summary + ScorecardRecalibrateResponse: + title: ScorecardRecalibrateResponse + x-stoplight: + id: 832327nsai3xw + type: object + properties: + recalibrated_scores: + $ref: '#/components/schemas/ScorecardSummaryInfo' + required: + - recalibrated_scores + ScorecardRecalibrateResponseV2: + title: ScorecardRecalibrateResponseV2 + x-stoplight: + id: 6ooyo1l1t3jkn + type: object + properties: + info: + $ref: '#/components/schemas/ScorecardRecalibrateInfo' + DataSourceDataPointInfo: + title: DataSourceDataPointInfo + x-stoplight: + id: jip4iam34alsh + type: object + description: Request Content for fetching the data point data from data source + x-internal: false + properties: + data_source_location: + $ref: '#/components/schemas/DataSourceLocationInfo' + catalog_info_yaml: + type: string + x-stoplight: + id: p0wrxgotcawcm + required: + - data_source_location + - catalog_info_yaml + DataPointInputValues: + title: DataPointInputValues + x-stoplight: + id: pmbxi4kgowomt + type: object + properties: + data_point_identifier: + type: string + x-stoplight: + id: bulmbn2grsz1a + data_source_identifier: + type: string + x-stoplight: + id: auomnn2gppz9a + input_values: + type: array + x-stoplight: + id: ojz53dfz4w06d + items: + $ref: '#/components/schemas/InputValue' + required: + - data_point_identifier + - values + description: Data point values Info for Request + x-internal: false + DataSourceLocationInfo: + title: DataSourceLocationInfo + x-stoplight: + id: ky5xrxrsqr6br + type: object + description: Data Source Location Info for request + x-internal: false + properties: + data_points: + type: array + items: + $ref: '#/components/schemas/DataPointInputValues' + required: + - data_points + DataSourceDataPointInfoResponse: + title: DataSourceDataPointInfoResponse + x-stoplight: + id: ygs9m3sxopb3z + type: object + description: Response for getting the data point data + x-internal: true + properties: + resource: + type: object + x-stoplight: + id: z7oe3qfj53oge + required: + - resource + DataSourceDataPointInfoRequest: + title: DataSourceDataPointInfoRequest + x-stoplight: + id: m7ipn0ebg4yz8 + type: object + description: Request for getting the data point data + x-internal: true + properties: + request: + $ref: '#/components/schemas/DataSourceDataPointInfo' + required: + - request + DefaultSaveResponse: + title: DefaultSaveResponse + x-stoplight: + id: 4dbdqgfzqv8nz + type: object + description: 'Default response for Save/Edit operations ' + properties: + status: + type: string + x-stoplight: + id: cskevfqvaydbn + required: + - status + DataSourceDataPointsMap: + title: DataSourceDataPointsMap + x-stoplight: + id: cpgfpfbu0mtuc + type: object + properties: + data_source: + $ref: '#/components/schemas/DataSource' + data_points: + type: array + x-stoplight: + id: hvxvu8nzkm4zd + items: + $ref: '#/components/schemas/DataPoint' + required: + - data_source + - data_points + description: Mapping of data source with data points + DataSourceDataPointsMapResponse: + title: DataSourceDataPointsMapResponse + x-stoplight: + id: hkryihjz7x491 + type: object + properties: + data_source_data_points_map: + x-stoplight: + id: gjgcug67oivlg + type: array + items: + $ref: '#/components/schemas/DataSourceDataPointsMap' + required: + - data_source_data_points_map + description: Response for getting the data sources and data points map + ClusterConfig: + title: ClusterConfig + x-stoplight: + id: p3z26e6oxw2g7 + type: object + properties: + url: + type: string + x-stoplight: + id: jkgnyf93137ih + token: + type: string + x-stoplight: + id: 46kek5s2hu6ff + name: + type: string + x-stoplight: + id: jdhh8cesnek6e + description: Kubernetes Cluster configuration + KubernetesConfig: + title: KubernetesConfig + x-stoplight: + id: bka2fmwsy2h8r + type: object + description: Kubernetes data source config + properties: + clusters: + type: array + x-stoplight: + id: a2xxxtl7ss1wn + items: + $ref: '#/components/schemas/ClusterConfig' + label_selector: + type: string + x-stoplight: + id: au25s8h8q4qzc + namespace: + type: string + x-stoplight: + id: fl26s8h9q4qzc + data_source_location: + $ref: '#/components/schemas/DataSourceLocationInfo' + KubernetesRequest: + title: KubernetesRequest + x-stoplight: + id: tnm7lax8bnuqn + type: object + properties: + request: + $ref: '#/components/schemas/KubernetesConfig' + ScmConfig: + title: ScmConfig + x-stoplight: + id: 4lnqpy92i93nn + type: object + description: Scm data source config + properties: + token: + type: string + x-stoplight: + id: trwbwp52ghvr1 + repo_scm: + type: string + x-stoplight: + id: ild5tcji7lp79 + repo_owner: + type: string + x-stoplight: + id: jsd5zcji6lp79 + repo_name: + type: string + x-stoplight: + id: 4g3czqv7rubhe + repo_branch: + type: string + x-stoplight: + id: utj0sh93p6jpf + repo_sub_folder: + type: string + x-stoplight: + id: oiao02rw7ueem + data_source_location: + $ref: '#/components/schemas/DataSourceLocationInfo' + ScmRequest: + title: ScmRequest + x-stoplight: + id: qdoqi2ofwsxrr + type: object + properties: + request: + $ref: '#/components/schemas/ScmConfig' + ScorecardRecalibrateIdentifiers: + title: ScorecardRecalibrateIdentifiers + x-stoplight: + id: dq24ve7fntvl7 + type: object + properties: + scorecard_identifier: + type: string + x-stoplight: + id: ext9tyc3dprj6 + entity_identifier: + type: string + x-stoplight: + id: 988nefyoe6o5e + description: Identifiers needed for score recalibration + ScorecardRecalibrateRequest: + title: ScorecardRecalibrateRequest + x-stoplight: + id: wyhtihipnwd7n + type: object + properties: + identifiers: + $ref: '#/components/schemas/ScorecardRecalibrateIdentifiers' + LicenseUsageSaveRequest: + title: LicenseUsageSaveRequest + x-stoplight: + id: p4t22zv37yivm + type: object + description: User details and accessedAt to capture license usage + properties: + user_identifier: + type: string + x-stoplight: + id: kwshwrjsp0kw0 + email: + type: string + x-stoplight: + id: gg9ozxyv4slx8 + user_name: + type: string + x-stoplight: + id: gg9ozxyv4slx8 + accessed_at: + type: integer + x-stoplight: + id: w7yl3d8j1xce2 + format: int64 + required: + - user_identifier + - email + - user_name + - accessed_at + LicenseUsageSaveResponse: + title: LicenseUsageSaveResponse + x-stoplight: + id: zavwissy2n6kj + type: object + description: Response for license usage save + properties: + status: + type: string + x-stoplight: + id: uva00wdpw7tkp + required: + - status + InputDetails: + title: InputDetails + x-stoplight: + id: 9bevzs2ntadh9 + type: object + properties: + key: + type: string + x-stoplight: + id: raxmdmy2r7q9y + description: + type: string + x-stoplight: + id: aqhb6cu8ooj5t + required: + type: boolean + x-stoplight: + id: q7eabpypob3ty + required: + - key + - description + - required + InputValue: + title: InputValue + x-stoplight: + id: optt6zoyoj558 + type: object + properties: + key: + type: string + x-stoplight: + id: g1gwgcsubi0n0 + value: + type: string + x-stoplight: + id: uf1wutejszt8j + required: + - key + - value + ScorecardStats: + title: ScorecardStats + x-stoplight: + id: mfzfyuj9dxi9v + type: object + description: ScorecardStats + x-internal: false + properties: + name: + type: string + x-stoplight: + id: skt0gj9ivt90s + namespace: + type: string + x-stoplight: + id: oklu13i7o6ebd + owner: + type: string + x-stoplight: + id: uiiw13t7o6uda + system: + type: string + x-stoplight: + id: up1h022u2v98y + kind: + type: string + x-stoplight: + id: azw80jiyldmxq + type: + type: string + x-stoplight: + id: oijvwg17eyejq + score: + type: integer + x-stoplight: + id: ehz071o8ft8bg + required: + - name + - namespace + - owner + - system + - kind + - type + - score + ScorecardStatsResponse: + title: ScorecardStatsResponse + x-stoplight: + id: csadnzoryu4um + description: ScorecardStatsResponse + type: object + properties: + name: + type: string + x-stoplight: + id: czewiwd87fr8u + timestamp: + type: integer + x-stoplight: + id: 5p8wtkrmax6su + format: int64 + stats: + type: array + x-stoplight: + id: f4tm5re3zal0h + items: + $ref: '#/components/schemas/ScorecardStats' + required: + - name + - stats + CheckStats: + title: CheckStats + x-stoplight: + id: mgzeoij8ddi8f + type: object + description: CheckStats + x-internal: false + properties: + name: + type: string + x-stoplight: + id: tkt0gj9ivt90s + namespace: + type: string + x-stoplight: + id: pklu13i8o9rdb + owner: + type: string + x-stoplight: + id: piiw13t7o6uda + system: + type: string + x-stoplight: + id: pp1h022u2v98y + kind: + type: string + x-stoplight: + id: bzw80jiyldmxq + type: + type: string + x-stoplight: + id: pijvwg17eyejq + status: + type: string + x-stoplight: + id: fhz071o8ft8bg + required: + - name + - namespace + - owner + - system + - kind + - type + - status + CheckStatsResponse: + title: CheckStatsResponse + x-stoplight: + id: 1hhr4bzpt278k + type: object + description: CheckStatsResponse + x-internal: false + properties: + name: + type: string + x-stoplight: + id: 5kkekddw3r1zh + timestamp: + type: integer + x-stoplight: + id: 5e8wpkrsax6xu + format: int64 + stats: + x-stoplight: + id: nd4na7s04suxx + type: array + items: + $ref: '#/components/schemas/CheckStats' + required: + - name + - stats + CheckGraph: + title: CheckGraph + x-stoplight: + id: 7z8uudt72xmej + type: object + properties: + timestamp: + type: integer + x-stoplight: + id: 549864xz1sb1m + format: int64 + count: + type: integer + x-stoplight: + id: irv1t5g39uexj + ScorecardRecalibrateInfo: + title: ScorecardRecalibrateInfo + x-stoplight: + id: a5yovd00yo89y + type: object + properties: + start_time: + type: integer + x-stoplight: + id: dsc57yz269flx + format: int64 + started_by: + $ref: '#/components/schemas/User' + User: + title: User + x-stoplight: + id: p693c8e19hig1 + type: object + properties: + uuid: + type: string + x-stoplight: + id: akz3uywxq3fcy + name: + type: string + x-stoplight: + id: j5y9u9hxapibd + email: + type: string + x-stoplight: + id: zrikcrbyjl7pk + description: '' + DefaultPluginDetailedInfo: + title: DefaultPluginDetailedInfo + x-stoplight: + id: om79yzqsehzdj + allOf: + - $ref: '#/components/schemas/PluginDetailedInfo' + description: Metadata for default plugin + CustomPluginDetailedInfo: + title: CustomPluginDetailedInfo + x-stoplight: + id: 7d5vhhxgcinuj + description: Metadata for custom plugin + allOf: + - $ref: '#/components/schemas/PluginDetailedInfo' + - type: object + x-stoplight: + id: a3azbqof3qaa4 + properties: + artifact: + $ref: '#/components/schemas/Artifact' + Artifact: + title: Artifact + x-stoplight: + id: 647wjmduc547h + type: object + description: Artifact details for custom plugin + properties: + type: + type: string + x-stoplight: + id: jkdjdyi0psnta + enum: + - NPM + - ZIP + url: + type: string + x-stoplight: + id: kmk65kswz6xuz + required: + - type + - url + CustomPluginInfoRequest: + title: CustomPluginInfoRequest + x-stoplight: + id: szco1w9ni5gg2 + type: object + properties: + info: + $ref: '#/components/schemas/CustomPluginDetailedInfo' + CustomPluginInfoResponse: + title: CustomPluginInfoResponse + x-stoplight: + id: r9u1gb8tlw8jm + type: object + properties: + info: + $ref: '#/components/schemas/CustomPluginDetailedInfo' + BackstageHarnessSyncRequest: + title: BackstageHarnessSyncRequest + type: object + properties: + entity_identifier: + type: string + action: + type: string + enum: + - create + - update + - upsert + - delete + sync_mode: + type: string + enum: + - sync + - async + required: + - entity_identifier + - action + - sync_mode + BackstageHarnessSyncEntitiesResponse: + title: BackstageHarnessSyncEntitiesResponse + type: object + description: Response for backstage harness entities sync + properties: + status: + type: string + required: + - status + parameters: + AccountHeader: + name: Harness-Account + in: header + required: false + schema: + type: string + description: 'Identifier field of the account the resource is scoped to. This is required for Authorization methods other than the x-api-key header. If you are using the x-api-key header, this can be skipped.' + Limit: + name: limit + in: query + required: false + schema: + type: integer + description: 'Pagination: Number of items to return' + Page: + name: page + in: query + required: false + schema: + type: integer + description: "Pagination page number strategy: Specify the page number within the paginated collection related to the number of items in each page\t" + Sort: + name: sort + in: query + required: false + schema: + type: string + description: Parameter on the basis of which sorting is done. + BackstageEnvVariable: + name: backstage-env-variable + in: path + required: true + schema: + type: string + description: Identifier field of the backstage env variable the resource is scoped to + StatusType: + name: type + in: path + description: Status type + required: true + schema: + type: string + enum: + - infra + - onboarding + - infra_onboarding + AccountIdentifier: + name: accountIdentifier + in: path + required: true + schema: + type: string + description: Identifier field of the account the resource is scoped to + Order: + name: order + in: query + required: false + schema: + type: string + description: Order on the basis of which sorting is done. + SearchTerm: + name: search_term + in: query + required: false + schema: + type: string + description: This would be used to filter resources having attributes matching the search term. + LayoutIdentifier: + name: layout-identifier + in: path + required: true + schema: + type: string + description: Layout Identifier + PluginId: + name: plugin-id + in: path + description: Plugin Identifier + required: true + schema: + type: string + PluginName: + name: PluginId + in: query + required: false + schema: + type: string + description: 'Plugin name for filtering ' + Enabled: + name: enabled + in: query + required: true + schema: + type: boolean + description: flag for checking enablement/disablement + ProviderType: + name: provider-type + in: path + description: Provider Type + required: true + schema: + type: string + AuthId: + name: auth-id + in: path + description: Auth Identifier + required: true + schema: + type: string + enum: + - github-auth + - google-auth + Namespace: + name: namespace + in: query + required: false + schema: + type: string + description: Namespace from where the request is being made + CheckType: + name: custom + in: query + schema: + type: boolean + description: Type of checks to be returned + required: false + CheckIdentifier: + name: check-id + in: path + description: Check Identifier + required: true + schema: + type: string + ScorecardIdentifier: + name: scorecard-id + in: path + description: Scorecard Identifier + required: true + schema: + type: string + EntityIdentifier: + name: entity_identifier + in: query + required: true + schema: + type: string + description: 'Identifier for entity to get the scores for score card ' + ForceDelete: + name: force_delete + in: query + required: false + schema: + type: boolean + description: This is used if an entity need to be force deleted + CatalogKind: + name: kind + in: query + required: true + schema: + type: string + description: This is used to filter backstage catalog entity facets by kind + NamespacePathParam: + name: namespace + in: path + required: true + schema: + type: string + description: Namespace from where the request is being made + Meta: + name: meta + in: query + required: false + schema: + type: boolean + description: Custom plugin metadata + requestBodies: + BackstageEnvVariableRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/BackstageEnvVariableRequest' + examples: + Example 1: + value: + env_variable: + identifier: 641c7f1aa18dbf72522d78f0 + env_name: PAGERDUTY_TOKEN + created: 1679589047352 + updated: 1679589047352 + type: Secret + harness_secret_identifier: pdtoken + Example 2: + value: + env_variable: + identifier: 641c7f1aa18dbf72522d78f1 + env_name: GITHUB_APP_APPLICATION_ID + created: 1679589047352 + updated: 1679589047352 + type: Config + value: '1234' + application/yaml: + schema: + $ref: '#/components/schemas/BackstageEnvVariableRequest' + BackstageEnvVariableBatchRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/BackstageEnvVariableBatchRequest' + examples: {} + application/yaml: + schema: + $ref: '#/components/schemas/BackstageEnvVariableBatchRequest' + BackstagePermissionsRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/BackstagePermissionsRequest' + examples: {} + StatusInfoRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/StatusInfoRequest' + application/yaml: + schema: + $ref: '#/components/schemas/StatusInfoRequest' + ImportHarnessEntitiesRequest: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ImportEntitiesBase' + examples: {} + description: Details of Harness Entities and Catalog Location info + LayoutRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/LayoutRequest' + AppConfigRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/AppConfigRequest' + examples: + Example 1: + value: + app_config: + config_id: snyk-security + configs: |- + proxy: + '/snyk': + target: https://snyk.io/api/v1 + headers: + User-Agent: tech-services/backstage-plugin/1.0 + Authorization: token ${SNYK_TOKEN} + enabled: true + enabled_disabled_at: 0 + created: 1679589146025 + updated: 1679589146025 + env_variables: + - env_name: SNYK_TOKEN + type: Secret + harness_secret_identifier: snyktoken + config_name: Snyk Security + ConnectorInfoRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectorInfoRequest' + RequestPluginRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/RequestPlugin' + description: Details of the plugin being requested + LayoutIngestRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/LayoutIngestRequest' + GenerateYamlRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateYamlRequest' + description: Request to generate yaml for any one entity if provided or generate sample entity yaml definition + AllowListRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/AllowListRequest' + application/yaml: + schema: + $ref: '#/components/schemas/AllowListRequest' + ConfigurationEntitiesRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/ConfigurationEntities' + CheckDetailsRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CheckDetailsRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CheckDetailsRequest' + DataSourceDataPointInfoRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/DataSourceDataPointInfoRequest' + description: Request for getting the data point data + ScorecardRecalibrateRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/ScorecardRecalibrateRequest' + application/yaml: + schema: + $ref: '#/components/schemas/ScorecardRecalibrateRequest' + KubernetesConfigRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/KubernetesRequest' + application/yaml: + schema: + $ref: '#/components/schemas/KubernetesRequest' + description: Kubernetes Configuration + ScmConfigRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/ScmRequest' + application/yaml: + schema: + $ref: '#/components/schemas/ScmRequest' + description: Scm Configuration + LicenseUsageSaveRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseUsageSaveRequest' + description: User details and accessedAt to capture license usage + CustomPluginInfoRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomPluginInfoRequest' + application/yaml: + schema: + $ref: '#/components/schemas/CustomPluginInfoRequest' + CustomPluginCreateRequest: + content: + application/json: + schema: + type: object + BackstageHarnessSyncRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/BackstageHarnessSyncRequest' + responses: + BackstageEnvVariableResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/BackstageEnvVariableResponse' + application/yaml: + schema: + $ref: '#/components/schemas/BackstageEnvVariableResponse' + BackstageEnvVariableResponseList: + description: Example response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/BackstageEnvVariableResponse' + application/yaml: + schema: + type: array + items: + $ref: '#/components/schemas/BackstageEnvVariableResponse' + headers: + X-Total-Elements: + schema: + type: integer + description: Total number of elements returned in Paginated response. + X-Page-Number: + schema: + type: integer + description: Page number in Paginated response. + X-Page-Size: + schema: + type: integer + description: Maximum page size in Paginated response. + BackstagePermissionsResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/BackstagePermissionsResponse' + StatusInfoResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/StatusInfoResponse' + application/yaml: + schema: + $ref: '#/components/schemas/StatusInfoResponse' + StatusInfoResponseV2: + description: Response for getting status info + content: + application/json: + schema: + $ref: '#/components/schemas/StatusInfoV2' + LayoutResponse: + description: Layout response + content: + text/plain: + schema: + $ref: '#/components/schemas/LayoutResponse' + application/json: + schema: + $ref: '#/components/schemas/LayoutResponse' + NamespaceResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/NamespaceResponse' + application/xml: + schema: + $ref: '#/components/schemas/NamespaceResponse' + HarnessEntitiesResponse: + description: Response for harness entities mapping with backstage entities + content: + application/json: + schema: + $ref: '#/components/schemas/HarnessEntitiesResponse' + examples: {} + headers: + X-Total-Elements: + schema: + type: integer + description: Total number of elements returned in Paginated response. + X-Page-Number: + schema: + type: integer + description: Page number in Paginated response. + X-Page-Size: + schema: + type: integer + description: Maximum page size in Paginated response. + ImportEntitiesResponse: + description: Response for import / save harness entities to IDP + content: + application/json: + schema: + $ref: '#/components/schemas/ImportEntitiesResponse' + PluginInfoResponseList: + description: Example response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PluginInfoResponse' + application/yaml: + schema: + type: array + items: + $ref: '#/components/schemas/PluginInfoResponse' + PluginInfoResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/PluginInfoResponse' + application/yaml: + schema: + $ref: '#/components/schemas/PluginInfoResponse' + PluginDetailedInfoResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/PluginDetailedInfoResponse' + application/yaml: + schema: + $ref: '#/components/schemas/PluginDetailedInfoResponse' + AppConfigResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/AppConfigResponse' + application/xml: + schema: + type: object + properties: {} + multipart/form-data: + schema: + type: object + properties: {} + text/html: + schema: + type: object + properties: {} + ConnectorInfoResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectorInfoResponse' + application/yaml: + schema: + $ref: '#/components/schemas/ConnectorInfoResponse' + ConnectorInfoResponseList: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectorInfoResponse' + application/yaml: + schema: + $ref: '#/components/schemas/ConnectorInfoResponse' + MergedPluginConfigResponse: + description: Merged Config for all Enabled Plugins Response. + content: + application/json: + schema: + $ref: '#/components/schemas/MergedPluginConfigResponse' + HarnessEntitiesCountResponse: + description: Response for harness entities count that can be imported to IDP + content: + application/json: + schema: + $ref: '#/components/schemas/HarnessEntitiesCountResponse' + PluginRequestResponseList: + description: Returns all plugin requests for an account + content: + application/json: + schema: + $ref: '#/components/schemas/PluginRequestResponseList' + headers: + X-Total-Elements: + schema: + type: integer + description: Total number of elements returned in Paginated response. + X-Page-Number: + schema: + type: integer + description: Page number in Paginated response. + X-Page-Size: + schema: + type: integer + description: Maximum page size in Paginated response. + GenerateYamlResponse: + description: Response contianing entity yaml definition and description about the entity + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateYamlResponse' + AuthInfoResponse: + description: Response containing auth environment variables and namespace + content: + application/json: + schema: + $ref: '#/components/schemas/AuthInfoResponse' + application/yaml: + schema: + $ref: '#/components/schemas/AuthInfoResponse' + AllowListResponse: + description: Response containing backend url allow list + content: + application/json: + schema: + $ref: '#/components/schemas/AllowListResponse' + application/yaml: + schema: + $ref: '#/components/schemas/AllowListResponse' + ConfigurationEntitiesResponse: + description: Response for configuration screen resources + content: + application/json: + schema: + $ref: '#/components/schemas/ConfigurationEntities' + ResolvedEnvVariableResponse: + description: Returns encrypted string of list of env variables with the decrypted value + content: + application/json: + schema: + $ref: '#/components/schemas/ResolvedEnvVariableResponse' + examples: {} + application/yaml: + schema: + type: string + examples: {} + DataSourcesResponse: + description: Response containing list of data sources present in account + content: + application/json: + schema: + $ref: '#/components/schemas/DataSourcesResponse' + application/xml: + schema: + type: object + properties: + datasources: + type: string + x-stoplight: + id: 3wnfyg2pijb6r + ScorecardSummaryInfoResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/ScorecardSummaryResponse' + DatapointResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/DataPointsResponse' + ScorecardScoreResponse: + description: Response for scorecards score + content: + application/json: + schema: + $ref: '#/components/schemas/ScorecardScoreResponse' + EntityScoresResponseList: + description: Response for all the entity scores + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EntityScoresResponse' + ScorecardGraphSummaryResponse: + description: Response for scorecard's score summary for graph + content: + application/json: + schema: + $ref: '#/components/schemas/ScorecardGraphSummaryInfoResponse' + ScorecardRecalibrateResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/ScorecardRecalibrateResponse' + application/yaml: + schema: + $ref: '#/components/schemas/ScorecardRecalibrateResponse' + CheckResponseList: + description: Response for all checks available + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/CheckResponse' + application/yaml: + schema: + type: array + items: + $ref: '#/components/schemas/CheckResponse' + headers: + X-Total-Elements: + schema: + type: integer + description: Total number of elements returned in Paginated response. + X-Page-Number: + schema: + type: integer + description: Page number in Paginated response. + X-Page-Size: + schema: + type: integer + description: Maximum page size in Paginated response. + CheckDetailsResponse: + description: Response for check details + content: + application/json: + schema: + $ref: '#/components/schemas/CheckDetailsResponse' + application/yaml: + schema: + $ref: '#/components/schemas/CheckDetailsResponse' + ScorecardResponseList: + description: Response for all scorecards available + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ScorecardResponse' + application/yaml: + schema: + type: array + items: + $ref: '#/components/schemas/ScorecardResponse' + ScorecardDetailsResponse: + description: Response for scorecard details + content: + application/json: + schema: + $ref: '#/components/schemas/ScorecardDetailsResponse' + application/yaml: + schema: + $ref: '#/components/schemas/ScorecardDetailsResponse' + FacetsResponse: + description: Response for entity facets + content: + application/json: + schema: + $ref: '#/components/schemas/Facets' + application/yaml: + schema: + $ref: '#/components/schemas/Facets' + DataSourceDataPointInfoResponse: + description: Response for getting the data point data + content: + application/json: + schema: + $ref: '#/components/schemas/DataSourceDataPointInfoResponse' + DefaultSaveResponse: + description: Default response for Save/Edit operations + content: + application/json: + schema: + $ref: '#/components/schemas/DefaultSaveResponse' + application/yaml: + schema: + $ref: '#/components/schemas/DefaultSaveResponse' + DataSourceDataPointsMapResponse: + description: Response for getting the data source and data point map + content: + application/json: + schema: + $ref: '#/components/schemas/DataSourceDataPointsMapResponse' + application/xml: + schema: + type: object + properties: {} + LicenseUsageSaveResponse: + description: Response for license usage save + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseUsageSaveResponse' + ScorecardStatsResponse: + description: Response for scorecard stats + content: + application/json: + schema: + $ref: '#/components/schemas/ScorecardStatsResponse' + application/yaml: + schema: + $ref: '#/components/schemas/ScorecardStatsResponse' + CheckStatsResponse: + description: Response for check stats + content: + application/json: + schema: + $ref: '#/components/schemas/CheckStatsResponse' + application/yaml: + schema: + $ref: '#/components/schemas/CheckStatsResponse' + CheckGraphResponse: + description: Response for check graph data + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/CheckGraph' + application/yaml: + schema: + type: array + items: + $ref: '#/components/schemas/CheckGraph' + ScorecardRecalibrateResponseV2: + description: Response for async scorecard recalibrate request + content: + application/json: + schema: + $ref: '#/components/schemas/ScorecardRecalibrateResponseV2' + application/yaml: + schema: + $ref: '#/components/schemas/ScorecardRecalibrateResponseV2' + CustomPluginInfoResponse: + description: Example response + content: + application/json: + schema: + $ref: '#/components/schemas/CustomPluginInfoResponse' + application/yaml: + schema: + $ref: '#/components/schemas/CustomPluginInfoResponse' + BackstageHarnessSyncEntitiesResponse: + description: Response for backstage harness entities sync + content: + application/json: + schema: + $ref: '#/components/schemas/BackstageHarnessSyncEntitiesResponse' + securitySchemes: + x-api-key: + name: x-api-key + type: apiKey + in: header +tags: + - name: AccountInfo + description: Account Information + - name: AllowList + description: Backstage Allow List + - name: AppConfig + description: Backstage App Configurations + - name: AuthInfo + description: Auth Information + - name: BackstageEnvVariable + description: Backstage Environment Variable + - name: BackstagePermissions + description: Backstage Permissions + - name: ConnectorInfo + description: Connector Information + - name: CustomPlugin + description: Custom Plugin Information + - name: DataPointsData + description: DataPointData Information + - name: DataSource + description: DataSource Information + - name: HarnessDataPoints + description: Harness DataPoints Information + - name: KubernetesDataPoints + description: Kubernetes DataPoints Information + - name: LayoutProxy + description: Layout Proxy + - name: LicenseUsageResource + description: License Usage Resource + - name: MergedPluginsConfig + description: Merged Plugins Configurations + - name: Namespace + description: Backstage Namespace + - name: OnboardingResource + description: Onboarding + - name: PluginInfo + description: Plugin Information + - name: Provision + description: Provision + - name: Scores + description: Scores Information + - name: ScoresV2 + description: Scores Information V2 + - name: StatusInfo + description: Status Information + - name: BackstageHarness + description: Backstage Harness diff --git a/prod-catalog-info.yaml b/prod-catalog-info.yaml new file mode 100644 index 0000000..ad85750 --- /dev/null +++ b/prod-catalog-info.yaml @@ -0,0 +1,32 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: python-pipeline-samples-prod + annotations: + backstage.io/techdocs-ref: dir:. + backstage.io/kubernetes-label-selector: 'app=idp-ui' + backstage.io/kubernetes-namespace: '64805447033849710a35ad34' + github.com/project-slug: vigneswara-propelo/python-pipeline-samples + + # new-annotation + harness.io/pipelines: | + Pipeline1: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/Build_IDP_UI_App/pipeline-studio?storeType=INLINE + Pipeline2: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/pipelines/IDPAppDeploy/pipeline-studio?storeType=INLINE + + harness.io/services: | + Service1: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/services/idpserviceexp + Service2: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/services/idp + + jenkins.io/github-folder: 'CDS-68313/develop' + + # old-annotation + #harness.io/project-url: https://app.harness.io/ng/account/vpCkHKsDSxK9_KYfjCTMKA/home/orgs/default/projects/IDP_UI/details + +# snyk.io/org-name: vigneswara-propelo +# snyk.io/project-ids: 7c7766e6-1231-4e4f-b51f-0cbd2aacb227, 4addb946-2ff4-41b7-ae71-2a5d480193ee +spec: + type: service + lifecycle: experimental + owner: harness_account_all_users + providesApis: + - idp-Service-api diff --git a/requirements.txt b/requirements.txt index 627eea9..42d6bcb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ click==8.1.3 -Flask==2.2.2 +Flask==2.2.5 itsdangerous==2.1.2 Jinja2==3.1.2 MarkupSafe==2.1.1 diff --git a/template.yaml b/template.yaml new file mode 100644 index 0000000..d2325bf --- /dev/null +++ b/template.yaml @@ -0,0 +1,51 @@ +apiVersion: scaffolder.backstage.io/v1beta3 +kind: Template +# some metadata about the template itself +metadata: + name: Workflows-Quickstart + title: Create a New GitHub Repository + description: Creates a new GitHub Repository + annotations: + accountIdentifier: <+account.identifier> + orgIdentifier: <+variable.account.orgIdentifier> + projectIdentifier: <+variable.account.projectIdentifier> +spec: + owner: service.owner + type: service + # these are the steps which are rendered in the frontend with the form input + parameters: + - title: Fill in the repo details + required: + - github_org_name + - github_repo_name + properties: + github_org_name: + title: GitHub Organization + type: string + description: Name the org where you want to add the new repository + github_repo_name: + title: Repository Location + type: string + description: Name the new repository that you want to create + token: + title: Harness Token + type: string + ui:widget: password + ui:field: HarnessAuthToken + # here's the steps that are executed in series in the scaffolder backend + steps: + - id: trigger + name: Onboarding a New GitHub Repository + action: trigger:harness-custom-pipeline + input: + url: "https://laxmiharness.pr2.harness.io/ng/account/<+account.identifier>/idp-admin/orgs/<+variable.account.orgIdentifier>/projects/<+variable.account.projectIdentifier>/pipelines/GitHub_Repo_Onboarding/pipeline-studio/?storeType=INLINE&stageId=IDP§ionId=EXECUTION" + inputset: + github_org: ${{ parameters.github_org_name }} + github_repo: ${{ parameters.github_repo_name }} + apikey: ${{ parameters.token }} + # The final step is to register our new component in the catalog. + + output: + links: + - title: Pipeline Details + url: ${{ steps.trigger.output.PipelineUrl }} diff --git a/webpack.prod.js b/webpack.prod.js new file mode 100644 index 0000000..23f228a --- /dev/null +++ b/webpack.prod.js @@ -0,0 +1,103 @@ +/* + * Copyright 2022 Harness Inc. All rights reserved. + * Use of this source code is governed by the PolyForm Shield 1.0.0 license + * that can be found in the licenses directory at the root of this repository, also available at + * https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt. + */ + +const path = require('path') +const fs = require('fs') + +const webpack = require('webpack') +const { merge } = require('webpack-merge') +const HTMLWebpackPlugin = require('html-webpack-plugin') +const JSONGeneratorPlugin = require('@harness/jarvis/lib/webpack/json-generator-plugin').default +const { BugsnagSourceMapUploaderPlugin } = require('webpack-bugsnag-plugins') +const MiniCssExtractPlugin = require('mini-css-extract-plugin') +const CircularDependencyPlugin = require('circular-dependency-plugin') + +const commonConfig = require('./webpack.common') +const packageJson = require('../package.json') +const CONTEXT = process.cwd() + +// this BUGSNAG_TOKEN needs to be same which is passed in the docker file +const BUGSNAG_TOKEN = process.env.BUGSNAG_TOKEN +const BUGSNAG_SOURCEMAPS_UPLOAD = process.env.BUGSNAG_SOURCEMAPS_UPLOAD === 'true' +const harnessPackages = Object.keys(packageJson.dependencies) + .filter(name => name.startsWith('@harness')) + .reduce( + (accumulator, current) => ({ + ...accumulator, + [current]: JSON.parse( + fs.readFileSync(path.resolve(process.cwd(), `./node_modules/${current}/package.json`), 'utf8') + ).version + }), + {} + ) + +const versionContent = { + version: packageJson.version, + gitCommit: process.env.GIT_COMMIT, + gitBranch: process.env.GIT_BRANCH, + ...harnessPackages +} + +console.table(versionContent) + +const config = { + mode: 'production', + devtool: 'hidden-source-map', + output: { + path: path.resolve(CONTEXT, 'dist/static'), + filename: '[name].[contenthash:6].js', + chunkFilename: '[name].[id].[contenthash:6].js', + pathinfo: false, + assetModuleFilename: 'images/[hash:7][ext][query]' + }, + plugins: [ + new webpack.DefinePlugin({ + __DEV__: false, + __BUGSNAG_RELEASE_VERSION__: JSON.stringify(packageJson.version), + HARNESS_ENABLE_NG_AUTH_UI: false + }), + new HTMLWebpackPlugin({ + template: 'src/index.html', + filename: '../index.html', + minify: false, + templateParameters: { + __DEV__: false + } + }), + new MiniCssExtractPlugin({ + filename: '[name].[contenthash:6].css', + chunkFilename: '[name].[id].[contenthash:6].css' + }), + new JSONGeneratorPlugin({ + content: versionContent, + filename: 'version.json' + }), + new CircularDependencyPlugin({ + exclude: /node_modules/, + failOnError: true + }), + new HTMLWebpackPlugin({ + template: 'src/versions.html', + filename: 'versions.html', + minify: false, + inject: false + }) + ] +} + +if (BUGSNAG_SOURCEMAPS_UPLOAD && BUGSNAG_TOKEN) { + config.plugins.push( + new BugsnagSourceMapUploaderPlugin({ + apiKey: BUGSNAG_TOKEN, + appVersion: packageJson.version, + publicPath: '*', + overwrite: true + }) + ) +} + +module.exports = merge(commonConfig, config)