├── .backstage └── home-page.md ├── .changeset ├── README.md ├── config.json ├── gold-melons-brush.md ├── heavy-experts-train.md ├── ten-ants-end.md └── tiny-beers-throw.md ├── .dockerignore ├── .eslintrc.js ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── bug_template.md │ └── feature_template.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── ISSUE_TEMPLATE │ ├── bug_template.md │ └── feature-template.md │ ├── automate_stale.yml │ ├── changeset.yml │ ├── main.yml │ ├── publish.yml │ ├── pull-request.yml │ └── weekly-check-versions.yml ├── .gitignore ├── .husky └── pre-commit ├── .prettierignore ├── .yarn ├── plugins │ └── @yarnpkg │ │ └── plugin-backstage.cjs └── releases │ └── yarn-4.9.2.cjs ├── .yarnrc.yml ├── ADOPTERS.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── OWNERS.md ├── README.md ├── SECURITY.md ├── app-config.production.yaml ├── app-config.yaml ├── backstage.json ├── catalog-info.yaml ├── entities ├── templates │ ├── template-appendFile.yaml │ ├── template-argocd.yaml │ ├── template-backstage-http-request-demo.yaml │ ├── template-component-validator.yaml │ ├── template-ecr-create.yaml │ ├── template-json.yaml │ ├── template-jsonata.yaml │ ├── template-parseFile.yaml │ ├── template-replaceInFile.yaml │ ├── template-s3-cp.yaml │ ├── template-secrets-create.yaml │ ├── template-sleep.yaml │ ├── template-writeFile.yaml │ ├── template-yaml.yaml │ └── template-zip.yaml └── test-entity.yaml ├── jest.config.js ├── jest.setup.js ├── package.json ├── packages ├── app │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── e2e │ │ ├── argocd.test.ts │ │ ├── aws-lambda.test.ts │ │ ├── bugsnag.test.ts │ │ ├── buildkite.test.ts │ │ ├── datadog.test.ts │ │ ├── fixtures │ │ │ ├── AWSLambda │ │ │ │ ├── AWSCredentials.json │ │ │ │ └── AWSLambdaResponse.json │ │ │ ├── ArgoCD │ │ │ │ ├── applications-test-app.json │ │ │ │ └── deploy-history-data.json │ │ │ ├── Bugsnag │ │ │ │ ├── errors.json │ │ │ │ ├── organisations.json │ │ │ │ ├── projects.json │ │ │ │ └── trends.json │ │ │ ├── buildkite │ │ │ │ ├── builds.json │ │ │ │ └── pipeline.json │ │ │ ├── datadog │ │ │ │ ├── dashboard.html │ │ │ │ └── datadogdashboard.json │ │ │ ├── githubInsights │ │ │ │ ├── compliance.json │ │ │ │ ├── contributors.json │ │ │ │ ├── languages.json │ │ │ │ ├── readme.json │ │ │ │ └── releases.json │ │ │ ├── githubLogin │ │ │ │ └── login.json │ │ │ ├── githubPRs │ │ │ │ └── pull-requests.json │ │ │ ├── jira │ │ │ │ ├── activitystream.xml │ │ │ │ ├── jqlQueryResult.json │ │ │ │ ├── project.json │ │ │ │ ├── searchresult.json │ │ │ │ └── statuses.json │ │ │ ├── prometheus │ │ │ │ ├── alerts.json │ │ │ │ ├── graphs.json │ │ │ │ └── graphs2.json │ │ │ ├── securityInsights │ │ │ │ ├── alerts.json │ │ │ │ └── graphql.json │ │ │ └── travisCi │ │ │ │ ├── build.json │ │ │ │ └── builds.json │ │ ├── github-insights.test.ts │ │ ├── github-pull-requests.test.ts │ │ ├── helpers │ │ │ ├── auth.setup.ts │ │ │ └── auth.ts │ │ ├── jira.test.ts │ │ ├── prometheus.test.ts │ │ ├── scaffolder-http-request.test.ts │ │ ├── security-insights.test.ts │ │ └── travis-ci.test.ts │ ├── package.json │ ├── public │ │ ├── android-chrome-192x192.png │ │ ├── apple-touch-icon.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── manifest.json │ │ ├── robots.txt │ │ └── safari-pinned-tab.svg │ └── src │ │ ├── App.test.tsx │ │ ├── App.tsx │ │ ├── apis.ts │ │ ├── components │ │ ├── Root │ │ │ ├── LogoFull.tsx │ │ │ ├── LogoIcon.tsx │ │ │ ├── Root.tsx │ │ │ └── index.ts │ │ ├── catalog │ │ │ └── EntityPage.tsx │ │ └── home │ │ │ └── HomePage.tsx │ │ ├── index.tsx │ │ └── setupTests.ts └── backend │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── Dockerfile │ ├── README.md │ ├── package.json │ └── src │ ├── index.ts │ └── plugins │ └── roadiehq-local-catalog.ts ├── playwright.config.ts ├── plugins ├── backend │ ├── backstage-aws-backend │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── package.json │ │ └── src │ │ │ ├── index.ts │ │ │ ├── plugin.ts │ │ │ ├── service │ │ │ ├── router.test.ts │ │ │ └── router.ts │ │ │ ├── setupTests.ts │ │ │ └── types.ts │ ├── backstage-plugin-argo-cd-backend │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── config.d.ts │ │ ├── dev │ │ │ ├── README.md │ │ │ └── index.ts │ │ ├── images │ │ │ └── azure-argo.png │ │ ├── package.json │ │ └── src │ │ │ ├── index.ts │ │ │ ├── plugin.ts │ │ │ ├── refs │ │ │ └── argocdService.ref.ts │ │ │ ├── service │ │ │ ├── argocd.service.ts │ │ │ ├── argocd.test.ts │ │ │ ├── argocdTestResponses.ts │ │ │ ├── router.test.ts │ │ │ ├── router.ts │ │ │ ├── timer.services.ts │ │ │ └── types.ts │ │ │ ├── setupTests.ts │ │ │ └── utils │ │ │ └── getArgoConfig.ts │ ├── backstage-plugin-aws-auth │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── package.json │ │ └── src │ │ │ ├── index.ts │ │ │ └── service │ │ │ ├── aws-api.test.ts │ │ │ ├── aws-api.ts │ │ │ ├── generateTemporaryCredentials.ts │ │ │ └── router.ts │ ├── catalog-backend-module-aws │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── package.json │ │ └── src │ │ │ ├── annotations.ts │ │ │ ├── index.ts │ │ │ ├── processors │ │ │ ├── AWSCatalogProcessor.ts │ │ │ ├── AWSIAMRoleProcessor.ts │ │ │ └── index.ts │ │ │ ├── providers │ │ │ ├── AWSDynamoDbTableDataProvider.example.yaml.njs │ │ │ ├── AWSDynamoDbTableDataProvider.test.ts │ │ │ ├── AWSDynamoDbTableDataProvider.ts │ │ │ ├── AWSDynamoDbTableProvider.example.yaml.njs │ │ │ ├── AWSDynamoDbTableProvider.test.ts │ │ │ ├── AWSDynamoDbTableProvider.ts │ │ │ ├── AWSEBSVolumeProvider.example.yaml.njs │ │ │ ├── AWSEBSVolumeProvider.test.ts │ │ │ ├── AWSEBSVolumeProvider.ts │ │ │ ├── AWSEC2Provider.example.yaml.njs │ │ │ ├── AWSEC2Provider.test.ts │ │ │ ├── AWSEC2Provider.ts │ │ │ ├── AWSECRRepositoryEntityProvider.example.yaml.njs │ │ │ ├── AWSECRRepositoryEntityProvider.test.ts │ │ │ ├── AWSECRRepositoryEntityProvider.ts │ │ │ ├── AWSEKSClusterProvider.example.yaml.njs │ │ │ ├── AWSEKSClusterProvider.test.ts │ │ │ ├── AWSEKSClusterProvider.ts │ │ │ ├── AWSElastiCacheEntityProvider.example.yaml.njs │ │ │ ├── AWSElastiCacheEntityProvider.test.ts │ │ │ ├── AWSElastiCacheEntityProvider.ts │ │ │ ├── AWSEntityProvider.ts │ │ │ ├── AWSIAMRoleProvider.example.yaml.njs │ │ │ ├── AWSIAMRoleProvider.test.ts │ │ │ ├── AWSIAMRoleProvider.ts │ │ │ ├── AWSIAMUserProvider.example.yaml.njs │ │ │ ├── AWSIAMUserProvider.test.ts │ │ │ ├── AWSIAMUserProvider.ts │ │ │ ├── AWSLambdaFunctionProvider.example.yaml.njs │ │ │ ├── AWSLambdaFunctionProvider.test.ts │ │ │ ├── AWSLambdaFunctionProvider.ts │ │ │ ├── AWSLoadBalancerProvider.example.yaml.njs │ │ │ ├── AWSLoadBalancerProvider.test.ts │ │ │ ├── AWSLoadBalancerProvider.ts │ │ │ ├── AWSOpenSearchEntityProvider.example.yaml.njs │ │ │ ├── AWSOpenSearchEntityProvider.test.ts │ │ │ ├── AWSOpenSearchEntityProvider.ts │ │ │ ├── AWSOrganizationAccountsProvider.example.yaml.njs │ │ │ ├── AWSOrganizationAccountsProvider.test.ts │ │ │ ├── AWSOrganizationAccountsProvider.ts │ │ │ ├── AWSRDSProvider.example.yaml.njs │ │ │ ├── AWSRDSProvider.test.ts │ │ │ ├── AWSRDSProvider.ts │ │ │ ├── AWSS3BucketProvider.example.yaml.njs │ │ │ ├── AWSS3BucketProvider.test.ts │ │ │ ├── AWSS3BucketProvider.ts │ │ │ ├── AWSSNSTopicProvider.example.yaml.njs │ │ │ ├── AWSSNSTopicProvider.test.ts │ │ │ ├── AWSSNSTopicProvider.ts │ │ │ ├── AWSSQSEntityProvider.example.yaml.njs │ │ │ ├── AWSSQSEntityProvider.test.ts │ │ │ ├── AWSSQSEntityProvider.ts │ │ │ ├── AWSSecurityGroupProvider.example.yaml.njs │ │ │ ├── AWSSecurityGroupProvider.test.ts │ │ │ ├── AWSSecurityGroupProvider.ts │ │ │ ├── AWSSubnetProvider.example.yaml.njs │ │ │ ├── AWSSubnetProvider.test.ts │ │ │ ├── AWSSubnetProvider.ts │ │ │ ├── AWSVPCProvider.example.yaml.njs │ │ │ ├── AWSVPCProvider.test.ts │ │ │ ├── AWSVPCProvider.ts │ │ │ └── index.ts │ │ │ ├── setupTests.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ ├── arnToName.ts │ │ │ ├── columnMapper.test.ts │ │ │ ├── columnMapper.ts │ │ │ ├── tags.test.ts │ │ │ ├── tags.ts │ │ │ └── timer.ts │ ├── catalog-backend-module-gravatar │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── package.json │ │ └── src │ │ │ ├── index.ts │ │ │ ├── processors │ │ │ ├── GravatarProcessor.ts │ │ │ └── index.ts │ │ │ └── setupTests.ts │ ├── catalog-backend-module-okta │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── package.json │ │ └── src │ │ │ ├── entity-provider-modules.ts │ │ │ ├── extensions.ts │ │ │ ├── group-entity-provider.ts │ │ │ ├── index.ts │ │ │ ├── module.ts │ │ │ ├── new-backend.ts │ │ │ ├── org-entity-provider.ts │ │ │ ├── providers │ │ │ ├── GroupTree.test.ts │ │ │ ├── GroupTree.ts │ │ │ ├── OktaEntityProvider.test.ts │ │ │ ├── OktaEntityProvider.ts │ │ │ ├── OktaGroupEntityProvider.test.ts │ │ │ ├── OktaGroupEntityProvider.ts │ │ │ ├── OktaOrgEntityProvider.test.ts │ │ │ ├── OktaOrgEntityProvider.ts │ │ │ ├── OktaUserEntityProvider.test.ts │ │ │ ├── OktaUserEntityProvider.ts │ │ │ ├── accountConfig.ts │ │ │ ├── getOktaGroups.ts │ │ │ ├── getParentGroup.ts │ │ │ ├── groupEntityFromOktaGroup.test.ts │ │ │ ├── groupEntityFromOktaGroup.ts │ │ │ ├── groupNamingStrategies │ │ │ │ ├── ProfileFieldGroupNamingStrategy.test.ts │ │ │ │ ├── ProfileFieldGroupNamingStrategy.ts │ │ │ │ ├── groupNamingStrategyFactory.ts │ │ │ │ ├── idGroupNamingStrategy.ts │ │ │ │ ├── index.ts │ │ │ │ ├── kebabCaseGroupNamingStrategy.ts │ │ │ │ ├── profileNameGroupNamingStrategy.ts │ │ │ │ └── types.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ ├── userEntityFromOktaUser.ts │ │ │ └── userNamingStrategies │ │ │ │ ├── idUserNamingStrategy.ts │ │ │ │ ├── index.ts │ │ │ │ ├── kebabCaseEmailUserNamingStrategy.ts │ │ │ │ ├── slugifyEmailUserNamingStrategy.ts │ │ │ │ ├── stripEmailDomainUserNamingStrategy.ts │ │ │ │ ├── types.ts │ │ │ │ └── userNamingStrategyFactory.ts │ │ │ ├── setupTests.ts │ │ │ ├── test-utls.ts │ │ │ ├── types.ts │ │ │ └── user-entity-provider.ts │ ├── glean-backend │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── package.json │ │ └── src │ │ │ ├── client │ │ │ ├── GleanIndexClient.test.ts │ │ │ ├── GleanIndexClient.ts │ │ │ ├── TechDocsClient.test.ts │ │ │ ├── TechDocsClient.ts │ │ │ ├── fixtures │ │ │ │ └── staticTechDocsHtml.ts │ │ │ └── types.ts │ │ │ ├── config.ts │ │ │ ├── index.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ └── setupTests.ts │ ├── rag-ai-backend-embeddings-aws │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── package.json │ │ └── src │ │ │ ├── BedrockCohereEmbeddings.ts │ │ │ ├── RoadieBedrockAugmenter.ts │ │ │ ├── index.ts │ │ │ ├── module.ts │ │ │ └── setupTests.ts │ ├── rag-ai-backend-embeddings-openai │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── package.json │ │ └── src │ │ │ ├── RoadieOpenAiAugmenter.ts │ │ │ ├── index.ts │ │ │ └── setupTests.ts │ ├── rag-ai-backend-retrieval-augmenter │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── package.json │ │ └── src │ │ │ ├── defaultInitializer.ts │ │ │ ├── index.ts │ │ │ ├── indexing │ │ │ ├── DefaultVectorAugmentationIndexer.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ │ ├── retrieval │ │ │ ├── DefaultRetrievalPipeline.ts │ │ │ ├── index.ts │ │ │ ├── postProcessors │ │ │ │ └── CombiningPostProcessor.ts │ │ │ ├── retrievers │ │ │ │ ├── SearchClient.test.ts │ │ │ │ ├── SearchClient.ts │ │ │ │ ├── SearchRetriever.ts │ │ │ │ ├── VectorEmbeddingsRetriever.ts │ │ │ │ └── index.ts │ │ │ └── routers │ │ │ │ ├── SourceBasedRetrievalRouter.ts │ │ │ │ └── index.ts │ │ │ └── setupTests.ts │ ├── rag-ai-backend │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── docs │ │ │ ├── data-flow-diagram.png │ │ │ └── question-flow.png │ │ ├── package.json │ │ └── src │ │ │ ├── index.ts │ │ │ ├── plugin.ts │ │ │ ├── service │ │ │ ├── LlmService.ts │ │ │ ├── RagAiController.ts │ │ │ ├── index.ts │ │ │ ├── prompts.ts │ │ │ ├── router.ts │ │ │ └── types.ts │ │ │ └── setupTests.ts │ ├── rag-ai-node │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ └── src │ │ │ ├── extensions.ts │ │ │ ├── index.ts │ │ │ ├── setupTests.ts │ │ │ └── types.ts │ ├── rag-ai-storage-pgvector │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── migrations │ │ │ └── 20231216153432_init_vector_embeddings_store.js │ │ ├── package.json │ │ └── src │ │ │ ├── database │ │ │ └── migrations.ts │ │ │ ├── index.ts │ │ │ ├── service │ │ │ ├── RoadiePgVectorStore.ts │ │ │ └── index.ts │ │ │ └── setupTests.ts │ └── wiz-backend │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── package.json │ │ └── src │ │ ├── index.ts │ │ ├── plugin.ts │ │ ├── service │ │ ├── WizClient.ts │ │ ├── index.ts │ │ └── router.ts │ │ └── setupTests.ts ├── frontend │ ├── backstage-plugin-argo-cd │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── config.d.ts │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ ├── argo-cd-plugin-history-card.png │ │ │ ├── argo-cd-plugin-overview-card-details.png │ │ │ ├── argo-cd-plugin-overview-card.png │ │ │ ├── argo-cd-plugin.webp │ │ │ ├── index.md │ │ │ └── releasing.md │ │ ├── mkdocs.yml │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── src │ │ │ ├── Router.tsx │ │ │ ├── alpha.ts │ │ │ ├── alpha │ │ │ ├── apis.tsx │ │ │ ├── entityCards.test.tsx │ │ │ ├── entityCards.tsx │ │ │ ├── index.ts │ │ │ ├── pages.tsx │ │ │ └── plugin.tsx │ │ │ ├── api │ │ │ ├── index.test.ts │ │ │ └── index.ts │ │ │ ├── components │ │ │ ├── ArgoCDDetailsCard.tsx │ │ │ ├── ArgoCDHistoryCard.tsx │ │ │ ├── ArgoCDHistoryTable.tsx │ │ │ ├── DetailsDrawer.tsx │ │ │ ├── useAppDetails.ts │ │ │ └── useArgoCDAppData.ts │ │ │ ├── conditions.ts │ │ │ ├── index.ts │ │ │ ├── mocks │ │ │ └── mocks.ts │ │ │ ├── plugin.test.tsx │ │ │ ├── plugin.ts │ │ │ ├── setupTests.ts │ │ │ └── types.ts │ ├── backstage-plugin-aws-lambda │ │ ├── .eslintrc.js │ │ ├── .npmrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ └── lambda-widget.png │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── src │ │ │ ├── api │ │ │ ├── AWSLambdaApi.ts │ │ │ ├── AWSLambdaClient.ts │ │ │ └── index.ts │ │ │ ├── components │ │ │ ├── AWSLambdaOverview │ │ │ │ ├── AWSLambdaOverview.test.tsx │ │ │ │ └── AWSLambdaOverview.tsx │ │ │ └── ErrorBoundary.tsx │ │ │ ├── hooks │ │ │ ├── useLambda.ts │ │ │ └── useServiceEntityAnnotations.ts │ │ │ ├── index.ts │ │ │ ├── mocks │ │ │ └── mocks.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── setupTests.ts │ │ │ ├── state │ │ │ ├── AppState.tsx │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ ├── useAsyncPolling.ts │ │ │ └── useSettings.ts │ │ │ └── types.ts │ ├── backstage-plugin-aws │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ └── src │ │ │ ├── api │ │ │ ├── AwsApi.ts │ │ │ ├── AwsClient.test.ts │ │ │ ├── AwsClient.ts │ │ │ └── index.ts │ │ │ ├── components │ │ │ ├── EKSClusterCard │ │ │ │ ├── EKSClusterCard.test.tsx │ │ │ │ ├── EKSClusterCard.tsx │ │ │ │ └── index.ts │ │ │ ├── IAMRoleCard │ │ │ │ ├── IAMRoleCard.test.tsx │ │ │ │ ├── IAMRoleCard.tsx │ │ │ │ └── index.ts │ │ │ ├── IAMUserCard │ │ │ │ ├── IAMUserCard.test.tsx │ │ │ │ ├── IAMUserCard.tsx │ │ │ │ └── index.ts │ │ │ ├── LambdaFunctionCard │ │ │ │ ├── LambdaFunctionCard.test.tsx │ │ │ │ ├── LambdaFunctionCard.tsx │ │ │ │ └── index.ts │ │ │ └── S3BucketCard │ │ │ │ ├── S3BucketCard.test.tsx │ │ │ │ ├── S3BucketCard.tsx │ │ │ │ └── index.ts │ │ │ ├── constants.ts │ │ │ ├── index.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── routes.ts │ │ │ └── setupTests.ts │ ├── backstage-plugin-bitbucket-pullrequest │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── DEPRECATED.md │ │ ├── README.md │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ ├── bitbucketprimg.png │ │ │ ├── index.md │ │ │ └── releasing.md │ │ ├── package.json │ │ └── src │ │ │ ├── api │ │ │ └── BitbucketApi.ts │ │ │ ├── components │ │ │ ├── PullRequestList.test.tsx │ │ │ ├── PullRequestList.tsx │ │ │ ├── Router.tsx │ │ │ └── StatusFilter.tsx │ │ │ ├── index.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── responseStubs.ts │ │ │ ├── routes.ts │ │ │ ├── setupTests.ts │ │ │ └── utils │ │ │ └── isBITBUCKETSlugSet.ts │ ├── backstage-plugin-bugsnag │ │ ├── .eslintrc.js │ │ ├── .npmrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── config.d.ts │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ └── backstage-bugsnag-plugin.png │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── src │ │ │ ├── api │ │ │ ├── BugsnagApi.ts │ │ │ ├── BugsnagClient.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ │ ├── components │ │ │ ├── ErrorsOverviewComponent │ │ │ │ ├── ErrorsOverview.tsx │ │ │ │ └── index.ts │ │ │ └── ErrorsTableComponent │ │ │ │ ├── ErrorsTable.test.tsx │ │ │ │ ├── ErrorsTable.tsx │ │ │ │ └── index.ts │ │ │ ├── conditions.ts │ │ │ ├── hooks │ │ │ └── useBugsnagData.ts │ │ │ ├── index.ts │ │ │ ├── mock │ │ │ └── bugsnag-mocks.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── routes.ts │ │ │ └── setupTests.ts │ ├── backstage-plugin-buildkite │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ └── buildkite-plugin.png │ │ ├── package.json │ │ ├── plugin.yml │ │ ├── rollup.config.js │ │ └── src │ │ │ ├── api │ │ │ └── index.ts │ │ │ ├── components │ │ │ ├── BuildKiteBuildView │ │ │ │ ├── BuildKiteBuildView.test.tsx │ │ │ │ ├── BuildKiteBuildView.tsx │ │ │ │ ├── components │ │ │ │ │ ├── ActionOutput.tsx │ │ │ │ │ └── BuildkiteBuildStep.tsx │ │ │ │ └── index.ts │ │ │ ├── BuildKiteBuildsTable │ │ │ │ ├── BuildKiteBuildsTable.test.tsx │ │ │ │ ├── BuildKiteBuildsTable.tsx │ │ │ │ ├── components │ │ │ │ │ └── BuildKiteRunStatus.tsx │ │ │ │ └── index.ts │ │ │ ├── Router.tsx │ │ │ ├── types.ts │ │ │ ├── useBuilds.ts │ │ │ ├── useLog.ts │ │ │ ├── useProjectEntity.ts │ │ │ ├── useSingleBuild.ts │ │ │ └── utils.ts │ │ │ ├── consts.ts │ │ │ ├── index.ts │ │ │ ├── mocks │ │ │ └── mocks.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ └── setupTests.ts │ ├── backstage-plugin-cloudsmith │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── homepage-cloudsmith.png │ │ ├── package.json │ │ └── src │ │ │ ├── api │ │ │ ├── CloudsmithApi.ts │ │ │ ├── CloudsmithClient.test.ts │ │ │ ├── CloudsmithClient.ts │ │ │ ├── index.ts │ │ │ └── mocks │ │ │ │ └── mocks.ts │ │ │ ├── components │ │ │ ├── CloudsmithPackageListCard │ │ │ │ ├── Content.tsx │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── CloudsmithQuotaCard │ │ │ │ ├── Content.test.tsx │ │ │ │ ├── Content.tsx │ │ │ │ ├── UsageGauge.tsx │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── CloudsmithRepositoryAuditLogCard │ │ │ │ ├── Content.test.tsx │ │ │ │ ├── Content.tsx │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── CloudsmithRepositorySecurityCard │ │ │ │ ├── Content.test.tsx │ │ │ │ ├── Content.tsx │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ └── CloudsmithStatsCard │ │ │ │ ├── Content.test.tsx │ │ │ │ ├── Content.tsx │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── hooks │ │ │ └── useCloudsmithApi.ts │ │ │ ├── index.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── routes.ts │ │ │ └── setupTests.ts │ ├── backstage-plugin-datadog │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ ├── datadog-widget.png │ │ │ ├── dd-backstage-tab.png │ │ │ ├── dd-dashboard-2.png │ │ │ ├── dd-dashboard-share.png │ │ │ ├── dd-dashboard.png │ │ │ ├── dd-graph-overview.png │ │ │ └── dd-graph-share.png │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── src │ │ │ ├── Router.tsx │ │ │ ├── alpha.ts │ │ │ ├── alpha │ │ │ ├── apis.ts │ │ │ ├── entityCards.test.tsx │ │ │ ├── entityCards.tsx │ │ │ ├── entityContent.test.tsx │ │ │ ├── entityContent.tsx │ │ │ └── index.ts │ │ │ ├── api │ │ │ └── index.ts │ │ │ ├── components │ │ │ ├── DatadogDashboardPage.tsx │ │ │ ├── ErrorBoundary.tsx │ │ │ ├── GraphWidget.tsx │ │ │ └── useDatadogAppData.ts │ │ │ ├── index.ts │ │ │ ├── mocks │ │ │ └── mocks.ts │ │ │ ├── plugin.test.tsx │ │ │ ├── plugin.ts │ │ │ ├── setupTests.ts │ │ │ └── types.ts │ ├── backstage-plugin-github-insights │ │ ├── .eslintrc.js │ │ ├── .npmrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── __mocks__ │ │ │ └── zustand.js │ │ ├── app-config.yaml │ │ ├── catalog-info.yaml │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ ├── code-insights-plugin.png │ │ │ ├── compliance-report-widget.png │ │ │ ├── contributors-widget.png │ │ │ ├── environments-widget.png │ │ │ ├── languages-widget.png │ │ │ ├── readme-widget.png │ │ │ └── releases-widget.png │ │ ├── package.json │ │ └── src │ │ │ ├── apis │ │ │ ├── GithubApi.ts │ │ │ ├── GithubClient.ts │ │ │ ├── githubApiRef.ts │ │ │ └── index.ts │ │ │ ├── components │ │ │ ├── InsightsPage │ │ │ │ ├── InsightsPage.test.tsx │ │ │ │ ├── InsightsPage.tsx │ │ │ │ └── index.ts │ │ │ ├── Widgets │ │ │ │ ├── ComplianceCard │ │ │ │ │ ├── ComplianceCard.test.tsx │ │ │ │ │ ├── ComplianceCard.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ContributorsCard │ │ │ │ │ ├── ContributorsCard.test.tsx │ │ │ │ │ ├── ContributorsCard.tsx │ │ │ │ │ ├── components │ │ │ │ │ │ ├── Contributor │ │ │ │ │ │ │ ├── Contributor.test.tsx │ │ │ │ │ │ │ ├── Contributor.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ContributorTooltipContent │ │ │ │ │ │ │ ├── ContributorTooltipContent.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── ContributorsList │ │ │ │ │ │ │ ├── ContributorsList.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── EnvironmentsCard │ │ │ │ │ ├── EnvironmentsCard.test.tsx │ │ │ │ │ ├── EnvironmentsCard.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── LanguagesCard │ │ │ │ │ ├── LanguagesCard.test.tsx │ │ │ │ │ ├── LanguagesCard.tsx │ │ │ │ │ ├── colors.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── MarkdownContent │ │ │ │ │ ├── MarkdownContent.test.tsx │ │ │ │ │ ├── MarkdownContent.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── ReadMeCard │ │ │ │ │ ├── ReadMeCard.tsx │ │ │ │ │ ├── ReadmeCard.test.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ReleasesCard │ │ │ │ │ ├── ReleasesCard.test.tsx │ │ │ │ │ ├── ReleasesCard.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── store.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ │ ├── githubUtils.ts │ │ │ │ ├── isGithubInsightsAvailable.ts │ │ │ │ └── styles.ts │ │ │ ├── hooks │ │ │ ├── useComplianceHooks.ts │ │ │ ├── useContributor.ts │ │ │ ├── useEntityGithubScmIntegration.ts │ │ │ ├── useProjectEntity.ts │ │ │ └── useRequest.ts │ │ │ ├── index.ts │ │ │ ├── mocks │ │ │ ├── mocks.ts │ │ │ └── scmIntegrationsApiMock.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── routes.ts │ │ │ └── setupTests.ts │ ├── backstage-plugin-github-pull-requests │ │ ├── .eslintrc.js │ │ ├── .npmrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── app-config.yaml │ │ ├── catalog-info.yaml │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ ├── github-pullrequests-widget.png │ │ │ ├── homepage-components.png │ │ │ ├── index.md │ │ │ ├── list-of-pull-requests-and-stats-tab-view.png │ │ │ ├── list-of-pull-requests-and-stats.png │ │ │ ├── list-of-team-assigned-prs.png │ │ │ └── releasing.md │ │ ├── mkdocs.yml │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── src │ │ │ ├── api │ │ │ ├── GithubPullRequestsApi.ts │ │ │ ├── GithubPullRequestsClient.ts │ │ │ └── index.ts │ │ │ ├── components │ │ │ ├── GroupPullRequestsCard │ │ │ │ ├── Content.test.tsx │ │ │ │ ├── Content.tsx │ │ │ │ └── index.ts │ │ │ ├── Home │ │ │ │ ├── RequestedReviewsCard │ │ │ │ │ ├── Content.test.tsx │ │ │ │ │ ├── Content.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── YourOpenPullRequestsCard │ │ │ │ │ ├── Content.test.tsx │ │ │ │ │ ├── Content.tsx │ │ │ │ │ └── index.ts │ │ │ ├── Icons.tsx │ │ │ ├── PullRequestsListView │ │ │ │ ├── PullRequestListView.test.tsx │ │ │ │ ├── PullRequestsListView.tsx │ │ │ │ └── index.ts │ │ │ ├── PullRequestsPage │ │ │ │ ├── PullRequestsPage.tsx │ │ │ │ └── index.ts │ │ │ ├── PullRequestsStatsCard │ │ │ │ ├── PullRequestsStatsCard.test.tsx │ │ │ │ ├── PullRequestsStatsCard.tsx │ │ │ │ ├── components │ │ │ │ │ └── TooltipContent.tsx │ │ │ │ └── index.ts │ │ │ ├── PullRequestsTable │ │ │ │ ├── PullRequestsTable.test.tsx │ │ │ │ ├── PullRequestsTable.tsx │ │ │ │ └── index.ts │ │ │ ├── Router.tsx │ │ │ ├── useGithubSearchPullRequest.tsx │ │ │ ├── usePullRequests.ts │ │ │ └── usePullRequestsStatistics.ts │ │ │ ├── index.ts │ │ │ ├── mocks │ │ │ ├── githubAuthApi.ts │ │ │ ├── githubPullRequestsApiMock.ts │ │ │ ├── handlers.ts │ │ │ ├── mocks.ts │ │ │ └── scmIntegrationsApiMock.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── setupTests.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ ├── githubUtils.ts │ │ │ ├── isGithubSlugSet.ts │ │ │ └── isRoadieBackstageDefaultFilterSet.ts │ ├── backstage-plugin-iframe │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── app-config.yaml │ │ ├── catalog-info.yaml │ │ ├── config.d.ts │ │ ├── dev │ │ │ └── index.tsx │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── src │ │ │ ├── components │ │ │ ├── ErrorComponent.tsx │ │ │ ├── HomePageCard.test.tsx │ │ │ ├── HomePageCard.tsx │ │ │ ├── IFrameComponent.test.tsx │ │ │ ├── IFrameComponent.tsx │ │ │ ├── IFrameContent.test.tsx │ │ │ ├── IFrameContent.tsx │ │ │ ├── IFramePage.tsx │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ │ └── helpers.ts │ │ │ ├── index.ts │ │ │ ├── plugin.test.ts │ │ │ └── plugin.ts │ ├── backstage-plugin-jira │ │ ├── .changeset │ │ │ └── silent-pots-sip.md │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── config.d.ts │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ ├── index.md │ │ │ ├── jira-plugin-issues-view.png │ │ │ ├── jira-plugin.gif │ │ │ ├── my-jira-tickets-card.jpg │ │ │ └── releasing.md │ │ ├── package.json │ │ ├── src │ │ │ ├── api │ │ │ │ ├── index.test.ts │ │ │ │ ├── index.ts │ │ │ │ └── strategies │ │ │ │ │ ├── base.ts │ │ │ │ │ ├── cloud │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ │ ├── datacenter │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ │ ├── factory.ts │ │ │ │ │ └── index.ts │ │ │ ├── components │ │ │ │ ├── DraggableCard.tsx │ │ │ │ ├── EntityJiraActivityStreamCard │ │ │ │ │ ├── ActivityStream.tsx │ │ │ │ │ ├── EntityJiraActivityStreamCard.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── EntityJiraQueryCard │ │ │ │ │ ├── EntityJiraQueryCard.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Home │ │ │ │ │ └── MyJiraTicketsCard │ │ │ │ │ │ ├── Content.test.tsx │ │ │ │ │ │ ├── Content.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ ├── IssuesTable │ │ │ │ │ ├── IssuesTable.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── JiraOverviewCard │ │ │ │ │ ├── JiraCard.test.tsx │ │ │ │ │ ├── JiraOverviewCard.tsx │ │ │ │ │ ├── components │ │ │ │ │ │ ├── Selectors.tsx │ │ │ │ │ │ └── Status.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── JiraQueryCard │ │ │ │ │ ├── JiraQueryCard.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── Router.tsx │ │ │ ├── constants.ts │ │ │ ├── hooks │ │ │ │ ├── index.ts │ │ │ │ ├── useActivityStream.ts │ │ │ │ ├── useEmptyIssueTypeFilter.ts │ │ │ │ ├── useProjectEntity.ts │ │ │ │ ├── useProjectInfo.ts │ │ │ │ ├── useStatuses.ts │ │ │ │ ├── useTemplateParser.ts │ │ │ │ ├── useUserInfo.ts │ │ │ │ └── utils.ts │ │ │ ├── index.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── responseStubs.ts │ │ │ ├── setupTests.ts │ │ │ └── types.ts │ │ └── techdocs.yml │ ├── backstage-plugin-launchdarkly │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── card-screenshot.png │ │ ├── package.json │ │ └── src │ │ │ ├── components │ │ │ ├── EntityLaunchdarklyCard │ │ │ │ ├── EntityLaunchdarklyCard.tsx │ │ │ │ └── index.ts │ │ │ ├── EntityLaunchdarklyContextOverviewCard │ │ │ │ ├── EntityLaunchdarklyContextOverviewCard.tsx │ │ │ │ ├── FlagDetailsPanel.tsx │ │ │ │ ├── FlagVariationValueRenderer.tsx │ │ │ │ └── index.ts │ │ │ └── EntityLaunchdarklyProjectOverviewContent │ │ │ │ ├── EntityLaunchdarklyProjectOverviewContent.tsx │ │ │ │ └── index.ts │ │ │ ├── constants.ts │ │ │ ├── hooks │ │ │ ├── useLaunchdarklyContextFlags.ts │ │ │ ├── useLaunchdarklyMultiEnvironmentFlags.ts │ │ │ └── useLaunchdarklyProjectFlags.ts │ │ │ ├── index.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── routes.ts │ │ │ └── setupTests.ts │ ├── backstage-plugin-prometheus │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── config.d.ts │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ ├── prom_alert.png │ │ │ ├── prom_alert_filtered.png │ │ │ ├── prom_areagraph_widget.png │ │ │ ├── prom_entity_content.png │ │ │ ├── prom_graph.png │ │ │ ├── prom_graph_hover.png │ │ │ └── prom_graph_query.png │ │ ├── package.json │ │ └── src │ │ │ ├── api │ │ │ └── index.ts │ │ │ ├── components │ │ │ ├── CustomTooltip.tsx │ │ │ ├── PrometheusAlertStatus │ │ │ │ ├── PrometheusAlertEntityWrapper.test.tsx │ │ │ │ ├── PrometheusAlertEntityWrapper.tsx │ │ │ │ ├── PrometheusAlertStatus.tsx │ │ │ │ └── index.ts │ │ │ ├── PrometheusContentWrapper.tsx │ │ │ ├── PrometheusGraph │ │ │ │ ├── PrometheusGraph.tsx │ │ │ │ ├── PrometheusGraphEntityWrapper.test.tsx │ │ │ │ ├── PrometheusGraphEntityWrapper.tsx │ │ │ │ └── index.ts │ │ │ └── util.ts │ │ │ ├── conditions.ts │ │ │ ├── hooks │ │ │ ├── usePrometheus.test.ts │ │ │ └── usePrometheus.ts │ │ │ ├── index.ts │ │ │ ├── mocks │ │ │ ├── mockAlertResponse.json │ │ │ └── mockQueryResponse.json │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── setupTests.ts │ │ │ └── types.ts │ ├── backstage-plugin-security-insights │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── app-config.yaml │ │ ├── catalog-info.yaml │ │ ├── config.d.ts │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ ├── backstage-plugin-security-widget-1.png │ │ │ ├── backstage-plugin-security-widget.png │ │ │ ├── roadie-backstage-dependabot-alerts.png │ │ │ ├── roadie-backstage-dependabot-widget.png │ │ │ └── roadie-backstage-security-plugin.jpg │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── src │ │ │ ├── components │ │ │ ├── DependabotAlertsTable │ │ │ │ ├── DependabotAlertsTable.test.tsx │ │ │ │ ├── DependabotAlertsTable.tsx │ │ │ │ └── index.ts │ │ │ ├── DependabotAlertsWidget │ │ │ │ ├── DependabotAlertsWidget.test.tsx │ │ │ │ ├── DependabotAlertsWidget.tsx │ │ │ │ └── index.ts │ │ │ ├── GithubDependabotTab │ │ │ │ ├── GithubDependabotTab.tsx │ │ │ │ └── index.ts │ │ │ ├── Router.tsx │ │ │ ├── SecurityInsightsTab │ │ │ │ ├── SecurityInsightsTab.tsx │ │ │ │ └── index.ts │ │ │ ├── SecurityInsightsTable │ │ │ │ ├── SecurityInsightsTable.tsx │ │ │ │ ├── components │ │ │ │ │ └── StateFilterComponent │ │ │ │ │ │ ├── StateFilterComponent.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── SecurityInsightsWidget │ │ │ │ ├── SecurityInsightsWidget.test.tsx │ │ │ │ ├── SecurityInsightsWidget.tsx │ │ │ │ └── index.ts │ │ │ ├── UpdateSeverityStatusModal │ │ │ │ ├── UpdateSeverityStatusModal.tsx │ │ │ │ └── index.ts │ │ │ ├── useGitHubConfig.test.tsx │ │ │ ├── useGitHubConfig.ts │ │ │ ├── useProjectEntity.ts │ │ │ ├── useProjectName.ts │ │ │ ├── useUrl.test.tsx │ │ │ ├── useUrl.ts │ │ │ └── utils.tsx │ │ │ ├── index.ts │ │ │ ├── mocks │ │ │ └── mocks.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── setupTests.ts │ │ │ └── types.ts │ ├── backstage-plugin-shortcut │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ └── shortcut.png │ │ ├── package.json │ │ └── src │ │ │ ├── api │ │ │ ├── ShortcutClient.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ │ ├── components │ │ │ ├── ComponentExtensions │ │ │ │ └── EntityStoriesCard.tsx │ │ │ └── Home │ │ │ │ ├── StoriesCardHomepage.test.tsx │ │ │ │ ├── StoriesCardHomepage.tsx │ │ │ │ └── index.ts │ │ │ ├── constants.ts │ │ │ ├── hooks │ │ │ └── useShortcutData.ts │ │ │ ├── index.ts │ │ │ ├── isShortcutAvailable.ts │ │ │ ├── mocks │ │ │ ├── handlers.ts │ │ │ └── mocks.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── routes.ts │ │ │ └── setupTests.ts │ ├── backstage-plugin-travis-ci │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── catalog-info.yaml │ │ ├── config.d.ts │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ └── travis-ci-plugin-1642x1027.png │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── src │ │ │ ├── Router.tsx │ │ │ ├── api │ │ │ ├── constants.ts │ │ │ └── index.ts │ │ │ ├── components │ │ │ ├── BuildsPage │ │ │ │ ├── BuildsPage.tsx │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ ├── Builds │ │ │ │ │ ├── Builds.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ └── CITable │ │ │ │ │ ├── CITable.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── travisIcon.tsx │ │ │ ├── ContextProvider.tsx │ │ │ ├── LastBuildCard.test.tsx │ │ │ ├── LastBuildCard.tsx │ │ │ ├── RecentTravisCIBuildsWidget.tsx │ │ │ └── TravisCiBuildsPage.tsx │ │ │ ├── hooks │ │ │ ├── useAsyncPolling.ts │ │ │ ├── useBuild.ts │ │ │ ├── useBuilds.ts │ │ │ ├── useSettings.ts │ │ │ └── useTravisRepoData.ts │ │ │ ├── index.ts │ │ │ ├── mocks │ │ │ └── mocks.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ └── setupTests.ts │ ├── backstage-plugin-wiz │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── dev │ │ │ └── index.tsx │ │ ├── docs │ │ │ ├── issues-chart.png │ │ │ ├── issues-widget.png │ │ │ ├── missing-annotation.png │ │ │ ├── severity-graph.png │ │ │ ├── wiz-expanded-issues.png │ │ │ └── wiz-issues.png │ │ ├── package.json │ │ └── src │ │ │ ├── api │ │ │ ├── WizAPI.ts │ │ │ ├── WizClient.ts │ │ │ └── index.ts │ │ │ ├── assets │ │ │ └── wiz-logo.png │ │ │ ├── components │ │ │ ├── EntityIssuesChart │ │ │ │ ├── EntityIssuesChart.tsx │ │ │ │ ├── IssuesChart.tsx │ │ │ │ ├── LineChart.tsx │ │ │ │ └── index.ts │ │ │ ├── EntitySeverityChart │ │ │ │ ├── BarChart.tsx │ │ │ │ ├── EntitySeverityChart.tsx │ │ │ │ ├── SeverityChart.tsx │ │ │ │ └── index.ts │ │ │ ├── Issues │ │ │ │ ├── Issues.tsx │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── IssuesContext.tsx │ │ │ ├── IssuesWidget │ │ │ │ ├── EntityIssuesWidget.tsx │ │ │ │ ├── IssuesWidget.tsx │ │ │ │ └── index.ts │ │ │ ├── Router.tsx │ │ │ └── constants.ts │ │ │ ├── index.ts │ │ │ ├── plugin.test.ts │ │ │ ├── plugin.ts │ │ │ ├── routes.ts │ │ │ ├── setupTests.ts │ │ │ └── style.ts │ ├── github-auth-utils-react │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── package.json │ │ └── src │ │ │ ├── components │ │ │ ├── GitHubAuthorizationWrapper.tsx │ │ │ ├── GitHubNotAuthorized.tsx │ │ │ └── index.ts │ │ │ ├── hooks │ │ │ └── useGithubLoggedIn.ts │ │ │ ├── index.test.ts │ │ │ └── index.ts │ └── rag-ai │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── config.d.ts │ │ ├── dev │ │ └── index.tsx │ │ ├── docs │ │ ├── api-spec-query.png │ │ ├── empty-modal.png │ │ ├── petstore-rag-openapi-example.gif │ │ └── simple-q-a.png │ │ ├── package.json │ │ └── src │ │ ├── api │ │ ├── client.ts │ │ ├── index.ts │ │ └── ragApi.ts │ │ ├── components │ │ ├── CodeHighlighter.tsx │ │ └── RagModal │ │ │ ├── EmbeddingsView.tsx │ │ │ ├── QuestionBox.tsx │ │ │ ├── RagModal.tsx │ │ │ ├── ResultRenderer.tsx │ │ │ ├── SidebarRagModal.tsx │ │ │ ├── Thinking.tsx │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── plugin.test.ts │ │ ├── plugin.ts │ │ ├── routes.ts │ │ ├── setupTests.ts │ │ └── types.ts ├── home │ ├── backstage-plugin-home-markdown │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── docs │ │ │ └── home-page-markdown.png │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── src │ │ │ ├── MarkdownCard │ │ │ ├── Content.test.tsx │ │ │ ├── Content.tsx │ │ │ ├── index.ts │ │ │ └── types.ts │ │ │ ├── apis │ │ │ ├── GithubApi.ts │ │ │ ├── GithubClient.ts │ │ │ ├── githubApiRef.ts │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── plugin.ts │ │ │ ├── routes.ts │ │ │ └── setupTests.ts │ └── backstage-plugin-home-rss │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── src │ │ ├── RSSCard │ │ ├── Content.test.tsx │ │ ├── Content.tsx │ │ ├── index.ts │ │ └── types.ts │ │ ├── index.ts │ │ ├── plugin.ts │ │ ├── routes.ts │ │ └── setupTests.ts ├── roadie-backstage-entity-validator │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── relativeSpaceValidation.ts │ │ ├── schemas │ │ │ ├── annotations.schema.json │ │ │ ├── product.schema.json │ │ │ └── repository.schema.json │ │ ├── validator.test.ts │ │ └── validator.ts │ ├── test.sh │ └── types.d.ts ├── scaffolder-actions │ ├── scaffolder-backend-argocd │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── package.json │ │ └── src │ │ │ ├── actions │ │ │ ├── index.ts │ │ │ └── run │ │ │ │ ├── argocd.test.ts │ │ │ │ ├── argocd.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── module.ts │ ├── scaffolder-backend-module-aws │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── package.json │ │ └── src │ │ │ ├── actions │ │ │ ├── ecr │ │ │ │ ├── create.test.ts │ │ │ │ ├── create.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── s3 │ │ │ │ ├── cp.test.ts │ │ │ │ ├── cp.ts │ │ │ │ └── index.ts │ │ │ └── secrets-manager │ │ │ │ ├── create.test.ts │ │ │ │ ├── create.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── module.ts │ ├── scaffolder-backend-module-http-request │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── api-report.md │ │ ├── catalog-info.yaml │ │ ├── package.json │ │ └── src │ │ │ ├── actions │ │ │ ├── index.ts │ │ │ └── run │ │ │ │ ├── backstageRequest.test.ts │ │ │ │ ├── backstageRequest.ts │ │ │ │ ├── helpers.test.ts │ │ │ │ ├── helpers.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── index.ts │ │ │ ├── module.ts │ │ │ ├── new-backend.ts │ │ │ └── setupTests.ts │ └── scaffolder-backend-module-utils │ │ ├── .eslintrc.js │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── catalog-info.yaml │ │ ├── package.json │ │ ├── setupTests.ts │ │ └── src │ │ ├── actions │ │ ├── fs │ │ │ ├── appendFile.test.ts │ │ │ ├── appendFile.ts │ │ │ ├── index.ts │ │ │ ├── parseFile.test.ts │ │ │ ├── parseFile.ts │ │ │ ├── replaceInFile.test.ts │ │ │ ├── replaceInFile.ts │ │ │ ├── writeFile.test.ts │ │ │ └── writeFile.ts │ │ ├── index.ts │ │ ├── jsonata │ │ │ ├── index.ts │ │ │ ├── json.test.ts │ │ │ ├── json.ts │ │ │ ├── jsonata.test.ts │ │ │ ├── jsonata.ts │ │ │ ├── yaml.test.ts │ │ │ └── yaml.ts │ │ ├── merge │ │ │ ├── index.ts │ │ │ ├── merge.test.ts │ │ │ └── merge.ts │ │ ├── serialize │ │ │ ├── index.ts │ │ │ ├── json.test.ts │ │ │ ├── json.ts │ │ │ ├── yaml.test.ts │ │ │ └── yaml.ts │ │ ├── sleep.test.ts │ │ ├── sleep.ts │ │ ├── zip.test.ts │ │ └── zip.ts │ │ ├── index.ts │ │ ├── module.ts │ │ ├── new-backend.ts │ │ └── types.ts └── scaffolder-field-extensions │ └── scaffolder-frontend-module-http-request-field │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── README.md │ ├── images │ ├── dropdown_sample_closed.png │ └── dropdown_sample_opened.png │ ├── package.json │ └── src │ ├── components │ └── SelectFieldFromApi │ │ ├── SelectFieldFromApi.test.tsx │ │ ├── SelectFieldFromApi.tsx │ │ ├── index.ts │ │ └── schema.ts │ ├── hooks │ └── useOauthSignIn.ts │ ├── index.ts │ ├── plugin.ts │ ├── setupTests.ts │ └── types.ts ├── scripts ├── check-if-release.js ├── copyright-header.txt ├── create-github-release.js └── create-release-tag.js ├── tsconfig.json └── yarn.lock /.backstage/home-page.md: -------------------------------------------------------------------------------- 1 | # Awesome home page 2 | 3 | Company links 4 | 5 | New 6 | 7 | Issues 8 | 9 | Pull requests 10 | 11 | Discord 12 | 13 | ![](https://github.com/RoadieHQ/roadie-backstage-plugins/blob/main/plugins/home/backstage-plugin-home-markdown/docs/home-page-markdown.png) 14 | 15 | ![Amazon Alexa](https://img.shields.io/badge/amazon%20alexa-52b5f7?style=for-the-badge&logo=amazon%20alexa&logoColor=white) 16 | -------------------------------------------------------------------------------- /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@1.6.2/schema.json", 3 | "changelog": "@changesets/cli/changelog", 4 | "commit": false, 5 | "linked": [], 6 | "access": "restricted", 7 | "baseBranch": "main", 8 | "updateInternalDependencies": "patch", 9 | "ignore": [] 10 | } 11 | -------------------------------------------------------------------------------- /.changeset/gold-melons-brush.md: -------------------------------------------------------------------------------- 1 | --- 2 | '@roadiehq/backstage-plugin-argo-cd-backend': patch 3 | --- 4 | 5 | Use test-utils from backstage bundle. 6 | -------------------------------------------------------------------------------- /.changeset/heavy-experts-train.md: -------------------------------------------------------------------------------- 1 | --- 2 | '@roadiehq/backstage-plugin-github-pull-requests': patch 3 | --- 4 | 5 | - Fix an issue that the GitHub Pull Requests Statistics ignores internal issues and shows undefined instead of an error message to the user. 6 | - Fix an issue that the GitHub Pull Requests Statistics card shows undefined (or an error) if a Pull Request without commits is consumed. 7 | -------------------------------------------------------------------------------- /.changeset/ten-ants-end.md: -------------------------------------------------------------------------------- 1 | --- 2 | '@roadiehq/backstage-plugin-argo-cd-backend': patch 3 | --- 4 | 5 | Fixed the error that occurred when the provided Argo CD URL contained trailing slash 6 | -------------------------------------------------------------------------------- /.changeset/tiny-beers-throw.md: -------------------------------------------------------------------------------- 1 | --- 2 | '@roadiehq/backstage-plugin-glean-backend': patch 3 | --- 4 | 5 | Remove backend-common dependency. 6 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | node_modules 3 | packages 4 | !packages/backend/dist 5 | plugins 6 | .yarn/cache 7 | .yarn/install-state.gz 8 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @RoadieHQ/engineering 2 | 3 | # Argo CD Backend: 4 | 5 | /plugins/backend/backstage-plugin-argo-cd-backend @RoadieHQ/engineering @karlhaworth 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_template.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 'Feature Request' 3 | about: 'Suggest new features and changes' 4 | labels: kind/enhancement 5 | --- 6 | 7 | 8 | 9 | ## Feature Suggestion 10 | 11 | 12 | 13 | ## Possible Implementation 14 | 15 | 16 | 17 | ## Context 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | #### :heavy_check_mark: Checklist 4 | 5 | - [ ] Added tests for new functionality and regression tests for bug fixes 6 | - [ ] Added changeset (run `yarn changeset` in the root) 7 | - [ ] Screenshots of before and after attached (for UI changes) 8 | - [ ] Added or updated documentation (if applicable) 9 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | yarn lint-staged 5 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .yarn 2 | dist 3 | microsite 4 | coverage 5 | *.hbs 6 | templates 7 | api-report.md 8 | cli-report.md 9 | plugins/scaffolder-backend/sample-templates 10 | .vscode 11 | dist-types 12 | 13 | # reduce the barrier for adopters to add themselves 14 | ADOPTERS.md 15 | 16 | *.njs 17 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | compressionLevel: mixed 2 | 3 | nodeLinker: node-modules 4 | 5 | plugins: 6 | - checksum: 3f0f3e2debfccaa85999007e42aed55409ba895e71bf2cfde4cf49210472b17d007dfefdffd38fc3685ceadaa842b5673cac68252766aec50b37837c8b086dfb 7 | path: .yarn/plugins/@yarnpkg/plugin-backstage.cjs 8 | spec: 'https://versions.backstage.io/v1/releases/1.40.2/yarn-plugin' 9 | 10 | yarnPath: .yarn/releases/yarn-4.9.2.cjs 11 | -------------------------------------------------------------------------------- /OWNERS.md: -------------------------------------------------------------------------------- 1 | - See [CONTRIBUTING.md](CONTRIBUTING.md) for general contribution guidelines. 2 | 3 | # Maintainers 4 | 5 | - Irma Solakovic ([Irma12](https://github.com/Irma12)) 6 | - Jussi Hallila ([Xantier](https://github.com/Xantier)) 7 | - Brian Fletcher ([punkle](https://github.com/punkle)) 8 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | | Version | Supported | 6 | | ------- | ------------------ | 7 | | 0.x | :white_check_mark: | 8 | 9 | ## Reporting a Vulnerability 10 | 11 | Please report security issues via security@roadie.io 12 | -------------------------------------------------------------------------------- /app-config.production.yaml: -------------------------------------------------------------------------------- 1 | app: 2 | # Should be the same as backend.baseUrl when using the `app-backend` plugin 3 | baseUrl: http://localhost:7007 4 | 5 | backend: 6 | baseUrl: http://localhost:7007 7 | listen: 8 | port: 7007 9 | -------------------------------------------------------------------------------- /backstage.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.40.2" 3 | } 4 | -------------------------------------------------------------------------------- /catalog-info.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: backstage.io/v1alpha1 2 | kind: Component 3 | metadata: 4 | name: roadie-backstage-plugins 5 | description: An example of a Backstage application. 6 | title: Roadie Backstage Plugins 7 | spec: 8 | type: website 9 | owner: group:open-source 10 | lifecycle: production 11 | 12 | --- 13 | apiVersion: backstage.io/v1alpha1 14 | kind: Location 15 | metadata: 16 | name: roadie-backstage-plugins 17 | spec: 18 | targets: 19 | - ./plugins/**/catalog-info.yaml 20 | - ./utils/**/catalog-info.yaml 21 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // setupTestFrameworkScriptFile has been deprecated in 3 | // favor of setupFilesAfterEnv in jest 24 4 | setupFilesAfterEnv: ['./jest.setup.js'], 5 | verbose: true, 6 | }; 7 | -------------------------------------------------------------------------------- /jest.setup.js: -------------------------------------------------------------------------------- 1 | jest.setTimeout(30000); 2 | -------------------------------------------------------------------------------- /packages/app/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/AWSLambda/AWSCredentials.json: -------------------------------------------------------------------------------- 1 | { 2 | "AccessKeyId": "test-key-id", 3 | "SecretAccessKey": "test-access-key", 4 | "SessionToken": "FwoGZXIvYXdztest1234==", 5 | "Expiration": "2024-11-12T21:19:39.000Z" 6 | } 7 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/ArgoCD/deploy-history-data.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": "test-user", 3 | "date": "2023-03-20T18:44:10Z", 4 | "message": "Update README.md" 5 | } 6 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/Bugsnag/organisations.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "129876sdfgh", 4 | "name": "RoadieHQTest", 5 | "slug": "roadie-test-organisation" 6 | } 7 | ] 8 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/Bugsnag/projects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "0987qwert!!", 4 | "api_key": "qwerty12345", 5 | "name": "Test bugsnag application", 6 | "slug": "test-bugsnag-app" 7 | } 8 | ] 9 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/Bugsnag/trends.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "from": "2021-09-05T09:17:17.384804Z", 4 | "to": "2021-09-15T09:17:17.384804Z", 5 | "events_count": 6 6 | }, 7 | { 8 | "from": "2021-09-05T09:17:17.384804Z", 9 | "to": "2021-09-15T09:17:17.384804Z", 10 | "events_count": 3 11 | }, 12 | { 13 | "from": "2021-09-05T09:17:17.384804Z", 14 | "to": "2021-09-15T09:17:17.384804Z", 15 | "events_count": 3 16 | }, 17 | { 18 | "from": "2021-09-05T09:17:17.384804Z", 19 | "to": "2021-09-15T09:17:17.384804Z", 20 | "events_count": 2 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/buildkite/pipeline.json: -------------------------------------------------------------------------------- 1 | { 2 | "default_branch": "foo" 3 | } 4 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/datadog/dashboard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Test Dashboard 5 | 6 | 7 | 8 |
9 |

Test Dashboard Roadie

10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/datadog/datadogdashboard.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/githubInsights/compliance.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/githubInsights/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "JavaScript": 5229, 4 | "Dockerfile": 187 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/githubLogin/login.json: -------------------------------------------------------------------------------- 1 | { 2 | "backstageIdentity": { 3 | "idToken": "test-id-token", 4 | "id": "foobar", 5 | "token": "test-token", 6 | "identity": { 7 | "type": "user", 8 | "userEntityRef": "user:default/foobar", 9 | "ownershipEntityRefs": ["user:default/foobar"] 10 | } 11 | }, 12 | "providerInfo": { 13 | "accessToken": "foo", 14 | "scope": "read:user repo read:org", 15 | "expiresInSeconds": 3600 16 | }, 17 | "profile": { 18 | "email": "foo@bar.com", 19 | "picture": "awesomepicture", 20 | "displayName": "Foo Bar" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/jira/searchresult.json: -------------------------------------------------------------------------------- 1 | { 2 | "startAt": 0, 3 | "maxResults": 50, 4 | "total": 2, 5 | "issues": [ 6 | { 7 | "self": "https://backstage-test.atlassian.net/rest/api/latest/status/10003", 8 | "id": "10003", 9 | "key": "10003", 10 | "fields": { 11 | "issuetype": { 12 | "id": 1, 13 | "name": "Task", 14 | "iconUrl": "http://example.com/avatar.jpg" 15 | } 16 | } 17 | }, 18 | { 19 | "self": "https://backstage-test.atlassian.net/rest/api/latest/status/10003", 20 | "id": "10004", 21 | "key": "10004", 22 | "fields": { 23 | "issuetype": { 24 | "id": 3, 25 | "name": "New Feature", 26 | "iconUrl": "http://example.com/avatar.jpg" 27 | } 28 | } 29 | } 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/prometheus/graphs.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "success", 3 | "data": { 4 | "resultType": "matrix", 5 | "result": [ 6 | { 7 | "metric": { 8 | "__name__": "node_memory_Active_bytes", 9 | "instance": "test-instance" 10 | }, 11 | "values": [ 12 | [1633001642.261, "6461119616"], 13 | [1633001656.261, "6444519616"] 14 | ] 15 | } 16 | ] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/prometheus/graphs2.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "success", 3 | "data": { 4 | "resultType": "matrix", 5 | "result": [ 6 | { 7 | "metric": { 8 | "__name__": "memUsage", 9 | "component": "node-exporter" 10 | }, 11 | "values": [ 12 | [1633001642.261, "6115519616"], 13 | [1633001656.261, "6995519616"] 14 | ] 15 | } 16 | ] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/app/e2e/fixtures/securityInsights/alerts.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /packages/app/public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/packages/app/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /packages/app/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/packages/app/public/apple-touch-icon.png -------------------------------------------------------------------------------- /packages/app/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/packages/app/public/favicon-16x16.png -------------------------------------------------------------------------------- /packages/app/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/packages/app/public/favicon-32x32.png -------------------------------------------------------------------------------- /packages/app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/packages/app/public/favicon.ico -------------------------------------------------------------------------------- /packages/app/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Backstage", 3 | "name": "Backstage", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "48x48", 8 | "type": "image/png" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /packages/app/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | -------------------------------------------------------------------------------- /packages/app/src/components/Root/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Spotify AB 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | // eslint-disable-next-line notice/notice 18 | export { Root } from './Root'; 19 | -------------------------------------------------------------------------------- /packages/app/src/index.tsx: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line notice/notice 2 | import '@backstage/cli/asset-types'; 3 | import ReactDOM from 'react-dom'; 4 | import App from './App'; 5 | 6 | ReactDOM.render(, document.getElementById('root')); 7 | -------------------------------------------------------------------------------- /packages/app/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line notice/notice 2 | import '@testing-library/jest-dom'; 3 | 4 | Object.defineProperty(global, 'TransformStream', { 5 | value: require('node:stream/web').TransformStream, 6 | writable: true, 7 | }); 8 | -------------------------------------------------------------------------------- /packages/backend/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/backend/backstage-aws-backend/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | '@typescript-eslint/camelcase': 0, 5 | 'no-console': [0], 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /plugins/backend/backstage-aws-backend/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './service/router'; 18 | export { awsBackendPlugin as default } from './plugin'; 19 | -------------------------------------------------------------------------------- /plugins/backend/backstage-aws-backend/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export {}; 18 | -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-argo-cd-backend/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | '@typescript-eslint/camelcase': 0, 5 | 'no-console': [0], 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-argo-cd-backend/dev/README.md: -------------------------------------------------------------------------------- 1 | # Local Development 2 | 3 | You can run `yarn start` in the root of this plugin and the standalone server will start on port 7007. To bypass authentication requirements you can disable the default auth policy in your local app config (`backend` -> `auth` -> `dangerouslyDisableDefaultAuthPolicy: true`), or you can temprorarily set the http router auth policy on the plugin to `unauthenticated` (`httpRouter.addAuthPolicy()`). 4 | 5 | You can also change the port if needed by setting the `backend` -> `listen` -> `port` configuration in your local yaml. 6 | -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-argo-cd-backend/dev/index.ts: -------------------------------------------------------------------------------- 1 | import { createBackend } from '@backstage/backend-defaults'; 2 | 3 | const backend = createBackend(); 4 | backend.start(); 5 | -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-argo-cd-backend/images/azure-argo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/backend/backstage-plugin-argo-cd-backend/images/azure-argo.png -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-argo-cd-backend/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './service/router'; 2 | export * from './refs/argocdService.ref'; 3 | export { ArgoService } from './service/argocd.service'; 4 | export { ArgoCDPlugin as default } from './plugin'; 5 | -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-argo-cd-backend/src/refs/argocdService.ref.ts: -------------------------------------------------------------------------------- 1 | import { 2 | coreServices, 3 | createServiceFactory, 4 | createServiceRef, 5 | } from '@backstage/backend-plugin-api'; 6 | import { ArgoService } from '../service/argocd.service'; 7 | import { ArgoServiceApi } from '../service/types'; 8 | 9 | export const argocdServiceRef = createServiceRef({ 10 | id: 'argocd-service-backend', 11 | defaultFactory: async service => 12 | createServiceFactory({ 13 | service, 14 | deps: { 15 | config: coreServices.rootConfig, 16 | logger: coreServices.logger, 17 | }, 18 | factory: deps => ArgoService.fromConfig(deps), 19 | }), 20 | }); 21 | -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-argo-cd-backend/src/service/timer.services.ts: -------------------------------------------------------------------------------- 1 | export function timer(ms: number) { 2 | return new Promise(resolve => setTimeout(resolve, ms)); 3 | } 4 | -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-argo-cd-backend/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | import fetchMock from 'jest-fetch-mock'; 2 | 3 | jest.setMock('cross-fetch', fetchMock); 4 | 5 | export {}; 6 | -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-argo-cd-backend/src/utils/getArgoConfig.ts: -------------------------------------------------------------------------------- 1 | import { InstanceConfig } from '../service/types'; 2 | 3 | export const getArgoConfigByInstanceName = ({ 4 | argoConfigs, 5 | argoInstanceName, 6 | }: { 7 | argoConfigs: InstanceConfig[]; 8 | argoInstanceName: string; 9 | }) => { 10 | const matchedArgoConfig = argoConfigs.find( 11 | configs => configs.name === argoInstanceName, 12 | ); 13 | return matchedArgoConfig; 14 | }; 15 | -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-aws-auth/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-aws-auth/catalog-info.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: backstage.io/v1alpha1 2 | kind: Component 3 | metadata: 4 | name: backstage-plugin-aws-auth 5 | title: Backstage Plugin AWS Auth 6 | description: | 7 | Backstage plugin to authenticate other plugins with AWS IAM. 8 | annotations: 9 | github.com/project-slug: roadiehq/backstage-plugin-aws-auth 10 | tags: 11 | - plugin 12 | - oss 13 | spec: 14 | type: library 15 | owner: group:roadie 16 | lifecycle: experimental 17 | -------------------------------------------------------------------------------- /plugins/backend/backstage-plugin-aws-auth/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export * from './service/router'; 17 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './providers'; 18 | export * from './processors'; 19 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/processors/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { AWSIAMRoleProcessor } from './AWSIAMRoleProcessor'; 18 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSDynamoDbTableDataProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.TableArn | to_entity_name }} 5 | annotations: 6 | amazon.com/dynamo-db-table-arn: {{ data.TableArn }} 7 | title: {{ data.TableName }} 8 | labels: 9 | {% for tag in tags %} 10 | {{ tag.Key }}: {{ tag.Value | replace(":", "-") | replace("/", "-") }} 11 | {% endfor %} 12 | spec: 13 | type: dynamo-db-table -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSDynamoDbTableProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.TableArn | to_entity_name }} 5 | annotations: 6 | amazon.com/dynamo-db-table-arn: {{ data.TableArn }} 7 | title: {{ data.TableName }} 8 | labels: 9 | something: {{ tags['something'] | replace("/", "-") | replace("/", "-") | replace(":", "-") }} 10 | spec: 11 | type: dynamo-db-table -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSEBSVolumeProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.VolumeId | to_entity_name }} 5 | annotations: 6 | amazonaws.com/ebs-volume-id: {{ data.VolumeId }} 7 | backstage.io/view-url: https://eu-west-1.console.aws.amazon.com/ec2/home?region=eu-west-1#VolumeDetails:volumeId={{ data.VolumeId }} 8 | title: {{ data.VolumeId }} 9 | labels: 10 | {% for tag in data.Tags %} 11 | {{ tag.Key }}: {{ tag.Value | replace(":", "-") | replace("/", "-") }} 12 | {% endfor %} 13 | spec: 14 | owner: unknown 15 | type: ebs-volume -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSEC2Provider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.InstanceId }} 5 | title: {{ data.InstanceId }} 6 | annotations: 7 | amazon.com/ec2-instance-id: {{ data.InstanceId }} 8 | backstage.io/view-url: https://eu-west-1.console.aws.amazon.com/ec2/v2/home 9 | spec: 10 | type: ec2-instance -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSECRRepositoryEntityProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.repositoryName }} 5 | tagImmutability: {{ data.imageTagMutability }} 6 | encryption: {{ data.encryptionConfiguration.encryptionType }} 7 | createdAt: {{ data.createdAt }} 8 | uri: {{ data.repositoryUri }} 9 | annotations: 10 | amazonaws.com/ecr-repository-arn: {{ data.repositoryArn }} 11 | title: {{ data.repositoryName }} 12 | spec: 13 | type: ecr-repository -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSElastiCacheEntityProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.CacheClusterId }} 5 | title: {{ data.CacheClusterId }} 6 | engineVersion: {{ data.EngineVersion }} 7 | engine: {{ data.Engine }} 8 | annotations: 9 | "amazon.com/elasticache-cluster-arn": {{ data.ARN }} 10 | spec: 11 | type: elasticache-cluster -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSIAMRoleProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.RoleName | to_entity_name }} 5 | annotations: 6 | amazon.com/iam-role-arn: {{ data.Arn }} 7 | title: {{ data.RoleName }} 8 | labels: 9 | {% if data.Tags %} 10 | {% for tag in data.Tags %} 11 | {{ tag.Key }}: {{ tag.Value | replace(":", "-") | replace("/", "-") }} 12 | {% endfor %} 13 | {% endif %} 14 | spec: 15 | type: aws-role 16 | owner: {{ accountId }} -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSIAMUserProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: User 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.UserId | to_entity_name }} 5 | annotations: 6 | amazon.com/eks-cluster-arn: {{ data.Arn }} 7 | kubernetes.io/auth-provider: aws 8 | kubernetes.io/x-k8s-aws-id: {{ data.UserName }} 9 | title: {{ data.UserName }} -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSLambdaFunctionProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.FunctionArn | to_entity_name }} 5 | annotations: 6 | amazon.com/lambda-function-arn: {{ data.FunctionArn }} 7 | backstage.io/view-url: "https://{{ region }}.console.aws.amazon.com/lambda/home?region={{ region }}#/functions/{{ data.FunctionName }}" 8 | title: {{ data.FunctionName }} -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSLoadBalancerProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | annotations: 5 | amazonaws.com/load-balancer-arn: {{ data.LoadBalancerArn }} 6 | amazonaws.com/load-balancer-dns-name: {{ data.DNSName }} 7 | backstage.io/view-url: https://{{ region }}.console.aws.amazon.com/ec2/home?region={{ region }}#LoadBalancers:loadBalancerId={{ data.LoadBalancerId }};sort=loadBalancerName 8 | title: {{ data.LoadBalancerName }} 9 | name: {{ data.LoadBalancerName }} 10 | dnsName: {{ data.DNSName }} 11 | scheme: {{ data.Scheme }} 12 | type: {{ data.Type }} 13 | state: {{ data.State.Code }} 14 | vpcId: {{ data.VpcId }} 15 | spec: 16 | type: load-balancer -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSOpenSearchEntityProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.DomainName }} 5 | annotations: 6 | amazon.com/open-search-domain-arn: {{ data.ARN }} 7 | title: {{ data.DomainName }} 8 | storageType: EBS-{{ data.EBSOptions.VolumeType }} 9 | endpoint: {{ data.Endpoint }} 10 | engineVersion: {{ data.EngineVersion }} 11 | spec: 12 | type: opensearch-domain -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSOrganizationAccountsProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.Arn | to_entity_name }} 5 | annotations: {} 6 | title: {{ data.Name }} 7 | joinedMethod: {{ data.JoinedMethod}} 8 | status: {{ data.Status}} 9 | spec: 10 | type: "aws-account" -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSRDSProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.DBInstanceIdentifier }} 5 | annotations: 6 | amazon.com/rds-instance-arn: {{ data.DBInstanceArn }} 7 | backstage.io/view-url: https://console.aws.amazon.com/rds/home?region={{ region }}#database:id={{ data.DBInstanceIdentifier }} 8 | title: {{ data.DBInstanceIdentifier }} 9 | dbInstanceClass: {{ data.DBInstanceClass }} 10 | spec: 11 | type: rds-instance -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSS3BucketProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.Name | to_entity_name }} 5 | annotations: 6 | amazonaws.com/s3-bucket-arn: arn:aws:s3:::{{ data.Name }} 7 | title: {{ data.Name }} 8 | labels: 9 | region: {{ region }} 10 | accountId: {{ accountId }} 11 | spec: 12 | type: s3-bucket 13 | owner: unknown -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSSNSTopicProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.TopicArn | split(":") | last }} 5 | annotations: 6 | backstage.io/view-url: "https://console.aws.amazon.com/sns/v3/home?region={{ region }}#/topic/{{ data.TopicArn }}" 7 | title: {{ data.TopicArn | split(":") | last }} -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSSQSEntityProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.QueueArn | split(":") | last }} 5 | title: {{ data.QueueArn | split(":") | last }} 6 | queueArn: {{ data.QueueArn }} 7 | annotations: 8 | amazon.com/sqs-queue-arn: {{ data.QueueArn }} 9 | labels: 10 | aws-sqs-region: {{ region }} 11 | spec: 12 | type: 'sqs-queue' -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSSecurityGroupProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.GroupId }} 5 | title: {{ data.GroupName }} 6 | description: {{ data.Description }} 7 | vpcId: {{ data.VpcId }} 8 | groupName: {{ data.GroupName }} 9 | ingressRules: tcp:80 from 0.0.0.0/0; tcp:443 from sg-87654321 10 | egressRules: All:All to 0.0.0.0/0 11 | labels: 12 | Environment: production--staging 13 | annotations: 14 | amazonaws.com/security-group-id: {{ data.GroupId }} 15 | backstage.io/view-url: https://eu-west-1.console.aws.amazon.com/ec2/v2/home?region=eu-west-1#SecurityGroup:groupId={{ data.GroupId }} 16 | spec: 17 | owner: unknown 18 | type: security-group -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSSubnetProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.SubnetId }} 5 | annotations: 6 | amazonaws.com/subnet-id: {{ data.SubnetId }} 7 | backstage.io/view-url: https://{{ region }}.console.aws.amazon.com/vpc/home?region={{ region }}#SubnetDetails:subnetId={{ data.SubnetId }} 8 | vpcId: {{ data.VpcId }} 9 | state: {{ data.State }} 10 | defaultForAz: {{ data.DefaultForAz }} 11 | cidrBlock: {{ data.CidrBlock }} 12 | availableIpAddressCount: {{ data.AvailableIpAddressCount }} 13 | availabilityZone: {{ data.AvailabilityZone }} 14 | mapPublicIpOnLaunch: {{ data.MapPublicIpOnLaunch }} 15 | labels: 16 | Environment: production--staging -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/providers/AWSVPCProvider.example.yaml.njs: -------------------------------------------------------------------------------- 1 | kind: Resource 2 | apiVersion: backstage.io/v1beta1 3 | metadata: 4 | name: {{ data.VpcId }} 5 | annotations: 6 | amazonaws.com/vpc-id: {{ data.VpcId }} 7 | title: {{ data.VpcId }} 8 | state: {{ data.State }} 9 | spec: 10 | type: vpc -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-aws/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | import '@testing-library/jest-dom'; 17 | 18 | export {}; 19 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-gravatar/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-gravatar/config.d.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export interface Config {} 18 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-gravatar/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './processors'; 18 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-gravatar/src/processors/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { GravatarProcessor } from './GravatarProcessor'; 17 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-gravatar/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export {}; 18 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-okta/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-okta/src/group-entity-provider.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { oktaGroupEntityProviderModule as default } from './entity-provider-modules'; 17 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-okta/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './providers'; 18 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-okta/src/org-entity-provider.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { oktaOrgEntityProviderModule as default } from './entity-provider-modules'; 17 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-okta/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export {}; 18 | -------------------------------------------------------------------------------- /plugins/backend/catalog-backend-module-okta/src/user-entity-provider.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { oktaUserEntityProviderModule as default } from './entity-provider-modules'; 17 | -------------------------------------------------------------------------------- /plugins/backend/glean-backend/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/backend/glean-backend/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # @roadiehq/backstage-plugin-glean-backend 2 | 3 | ## 1.0.1 4 | 5 | ### Patch Changes 6 | 7 | - fd1e7e6: Remove private flag from the plugin to publish 8 | 9 | ## 1.0.0 10 | 11 | ### Major Changes 12 | 13 | - 481af91: Release Glean plugin. 14 | -------------------------------------------------------------------------------- /plugins/backend/glean-backend/README.md: -------------------------------------------------------------------------------- 1 | # Glean Backend 2 | 3 | Welcome to the Glean backend plugin! 4 | 5 | This backend plugin is used to make our Backstage content available in 6 | [Glean](https://glean.com/) — our internal search engine. 7 | 8 | ## Getting started 9 | 10 | This plugin has been added to the main backend app in this repository, meaning 11 | you'll be able to access it by running `yarn start-backend` in the root 12 | directory, and then make requests to 13 | [http://localhost:7007/api/glean](http://localhost:7007/api/glean). 14 | -------------------------------------------------------------------------------- /plugins/backend/glean-backend/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2025 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { gleanPlugin as default } from './plugin'; 17 | -------------------------------------------------------------------------------- /plugins/backend/glean-backend/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2025 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export {}; 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend-embeddings-aws/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend-embeddings-aws/src/module.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2025 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend-embeddings-aws/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export {}; 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend-embeddings-openai/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend-embeddings-openai/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export {}; 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend-retrieval-augmenter/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend-retrieval-augmenter/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './indexing'; 18 | export * from './retrieval'; 19 | export * from './defaultInitializer'; 20 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend-retrieval-augmenter/src/retrieval/routers/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { SourceBasedRetrievalRouter } from './SourceBasedRetrievalRouter'; 17 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend-retrieval-augmenter/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export {}; 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend/docs/data-flow-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/backend/rag-ai-backend/docs/data-flow-diagram.png -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend/docs/question-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/backend/rag-ai-backend/docs/question-flow.png -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './service'; 18 | export { ragAiPlugin as default } from './plugin'; 19 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-backend/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export {}; 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-node/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-node/README.md: -------------------------------------------------------------------------------- 1 |
2 | Roadie Logo 3 |
4 | 5 | > ⚠️ **Reference Implementation Only** 6 | > The rag-ai plugin and its modules are a reference implementation provided for demonstration and educational purposes. 7 | > We provide minimal support for these components and do not actively maintain or update them. 8 | 9 | --- 10 | 11 | # @roadiehq/rag-ai-node 12 | 13 | This package contains types and interfaces to support RAG AI backend modules. 14 | 15 | --- 16 | 17 | Roadie gives you a hassle-free, fully customisable SaaS Backstage. Find out more here: [https://roadie.io](https://roadie.io). 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-node/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export * from './types'; 17 | export * from './extensions'; 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-node/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export {}; 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-storage-pgvector/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-storage-pgvector/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './service'; 18 | -------------------------------------------------------------------------------- /plugins/backend/rag-ai-storage-pgvector/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export {}; 18 | -------------------------------------------------------------------------------- /plugins/backend/wiz-backend/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/backend/wiz-backend/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export * from './service'; 17 | export { wizPlugin as default } from './plugin'; 18 | -------------------------------------------------------------------------------- /plugins/backend/wiz-backend/src/service/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export * from './WizClient'; 17 | export * from './router'; 18 | -------------------------------------------------------------------------------- /plugins/backend/wiz-backend/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export {}; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | '@typescript-eslint/camelcase': 0, 5 | 'no-console': [0], 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/docs/argo-cd-plugin-history-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-argo-cd/docs/argo-cd-plugin-history-card.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/docs/argo-cd-plugin-overview-card-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-argo-cd/docs/argo-cd-plugin-overview-card-details.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/docs/argo-cd-plugin-overview-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-argo-cd/docs/argo-cd-plugin-overview-card.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/docs/argo-cd-plugin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-argo-cd/docs/argo-cd-plugin.webp -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/docs/index.md: -------------------------------------------------------------------------------- 1 | Docs go here 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/docs/releasing.md: -------------------------------------------------------------------------------- 1 | # How to release 2 | 3 | This plugin uses the [npm-publish-action](https://github.com/marketplace/actions/publish-to-npm) GutHub Action to automate releases. It expects commits to be titled in a very specific way. 4 | 5 | To publish a new version, 6 | 7 | 1. Manually bump the version in the `package.json` file. 8 | 2. Commit the version bump the exact title: "Release 1.2.3". 9 | 10 | Do **not** use `yarn version --new-version [version]`. Doing so will automatically add a commit 11 | and tag which will then clash with the commit and tag that the automation creates. 12 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: 'backstage-plugin-argo-cd' 2 | 3 | nav: 4 | - Home: index.md 5 | - Releasing: releasing.md 6 | 7 | plugins: 8 | - techdocs-core 9 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/src/alpha.ts: -------------------------------------------------------------------------------- 1 | export * from './alpha/index'; 2 | export { default } from './alpha/index'; 3 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/src/alpha/entityCards.tsx: -------------------------------------------------------------------------------- 1 | import { EntityCardBlueprint } from '@backstage/plugin-catalog-react/alpha'; 2 | 3 | /** 4 | * @alpha 5 | */ 6 | export const entityArgoCDOverviewCard = EntityCardBlueprint.make({ 7 | name: 'overviewCard', 8 | params: { 9 | filter: 'kind:component', 10 | loader: () => 11 | import('../components/ArgoCDDetailsCard').then(m => ( 12 | 13 | )), 14 | }, 15 | }); 16 | 17 | /** 18 | * @alpha 19 | */ 20 | export const entityArgoCDHistoryCard: any = EntityCardBlueprint.make({ 21 | name: 'historyCard', 22 | params: { 23 | filter: 'kind:component', 24 | loader: () => 25 | import('../components/ArgoCDHistoryCard').then(m => ( 26 | 27 | )), 28 | }, 29 | }); 30 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/src/alpha/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './plugin'; 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/src/conditions.ts: -------------------------------------------------------------------------------- 1 | import { Entity } from '@backstage/catalog-model'; 2 | import { 3 | ARGOCD_ANNOTATION_APP_NAME, 4 | ARGOCD_ANNOTATION_APP_SELECTOR, 5 | ARGOCD_ANNOTATION_PROJECT_NAME, 6 | } from './components/useArgoCDAppData'; 7 | 8 | export const isArgocdAvailable = (entity: Entity) => 9 | Boolean(entity?.metadata.annotations?.[ARGOCD_ANNOTATION_APP_NAME]) || 10 | Boolean(entity?.metadata.annotations?.[ARGOCD_ANNOTATION_APP_SELECTOR]) || 11 | Boolean(entity?.metadata.annotations?.[ARGOCD_ANNOTATION_PROJECT_NAME]); 12 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-argo-cd/src/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | argocdPlugin as plugin, 3 | argocdPlugin, 4 | EntityArgoCDContent, 5 | EntityArgoCDOverviewCard, 6 | EntityArgoCDHistoryCard, 7 | } from './plugin'; 8 | export * from './api'; 9 | export { isArgocdAvailable } from './conditions'; 10 | export { 11 | ARGOCD_ANNOTATION_APP_NAME, 12 | ARGOCD_ANNOTATION_APP_SELECTOR, 13 | ARGOCD_ANNOTATION_APP_NAMESPACE, 14 | ARGOCD_ANNOTATION_PROJECT_NAME, 15 | ARGOCD_ANNOTATION_PROXY_URL, 16 | } from './components/useArgoCDAppData'; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws-lambda/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | }, 5 | }); 6 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws-lambda/.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org/ 2 | engine-strict=true 3 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws-lambda/docs/lambda-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-aws-lambda/docs/lambda-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws-lambda/src/api/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './AWSLambdaApi'; 18 | export * from './AWSLambdaClient'; 19 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws-lambda/src/state/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './AppState'; 18 | export * from './useSettings'; 19 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws-lambda/src/types.ts: -------------------------------------------------------------------------------- 1 | export type LambdaData = { 2 | region: string; 3 | functionName: string; 4 | codeSize: number; 5 | description: string; 6 | lastModifiedDate: string; 7 | runtime: string; 8 | memory: number; 9 | state: string; 10 | lastUpdateStatus: string; 11 | lastUpdateStatusReason: string; 12 | }; 13 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws/README.md: -------------------------------------------------------------------------------- 1 | # backstage-plugin-aws 2 | 3 | To use this plugin, you will need to add the cards to the entity page in the frontend app. 4 | 5 | Edit the `packages/app/src/components/catalog/EntityPage.tsx` and add the imports 6 | 7 | ```typescript jsx 8 | import { 9 | S3BucketCard, 10 | LambdaFunctionCard, 11 | IAMUserCard, 12 | } from '@roadiehq/backstage-plugin-aws'; 13 | ``` 14 | 15 | Then add the following components: 16 | 17 | ```typescript jsx 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | ``` 28 | 29 | --- 30 | 31 | Roadie gives you a hassle-free, fully customisable SaaS Backstage. Find out more here: [https://roadie.io](https://roadie.io). 32 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws/src/components/EKSClusterCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { EKSClusterCard } from './EKSClusterCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws/src/components/IAMRoleCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { IAMRoleCard } from './IAMRoleCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws/src/components/IAMUserCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { IAMUserCard } from './IAMUserCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws/src/components/LambdaFunctionCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { LambdaFunctionCard } from './LambdaFunctionCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws/src/components/S3BucketCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { S3BucketCard } from './S3BucketCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './plugin'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-aws/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import '@testing-library/jest-dom'; 18 | import 'cross-fetch/polyfill'; 19 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bitbucket-pullrequest/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bitbucket-pullrequest/docs/bitbucketprimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-bitbucket-pullrequest/docs/bitbucketprimg.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bitbucket-pullrequest/docs/index.md: -------------------------------------------------------------------------------- 1 | Docs go here 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bitbucket-pullrequest/docs/releasing.md: -------------------------------------------------------------------------------- 1 | # How to release 2 | 3 | This plugin uses the [npm-publish-action](https://github.com/marketplace/actions/publish-to-npm) GutHub Action to automate releases. It expects commits to be titled in a very specific way. 4 | 5 | To publish a new version, 6 | 7 | 1. Manually bump the version in the `package.json` file. 8 | 2. Commit the version bump the exact title: "Release 1.2.3". 9 | 10 | Do **not** use `yarn version --new-version [version]`. Doing so will automatically add a commit 11 | and tag which will then clash with the commit and tag that the automation creates. 12 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bitbucket-pullrequest/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { bitbucketPlugin, EntityBitbucketPullRequestsContent } from './plugin'; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bugsnag/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bugsnag/.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org/ 2 | engine-strict=true 3 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bugsnag/docs/backstage-bugsnag-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-bugsnag/docs/backstage-bugsnag-plugin.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bugsnag/src/api/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './BugsnagApi'; 18 | export * from './BugsnagClient'; 19 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bugsnag/src/components/ErrorsOverviewComponent/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { ErrorsOverview } from './ErrorsOverview'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bugsnag/src/components/ErrorsTableComponent/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { ErrorsTable } from './ErrorsTable'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-bugsnag/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import '@testing-library/jest-dom'; 18 | import 'cross-fetch/polyfill'; 19 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-buildkite/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | }, 5 | }); 6 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-buildkite/.npmrc: -------------------------------------------------------------------------------- 1 | registry=http://registry.npmjs.org/ 2 | engine-strict=true 3 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-buildkite/dev/index.tsx: -------------------------------------------------------------------------------- 1 | import { createDevApp } from '@backstage/dev-utils'; 2 | import { buildkitePlugin } from '../src'; 3 | 4 | createDevApp().registerPlugin(buildkitePlugin).render(); 5 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-buildkite/docs/buildkite-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-buildkite/docs/buildkite-plugin.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-buildkite/plugin.yml: -------------------------------------------------------------------------------- 1 | name: Buildkite Backstage plugin 2 | description: View recent builds for your Backstage service catalog components. 3 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-buildkite/src/components/BuildKiteBuildView/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './BuildKiteBuildView'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-buildkite/src/components/BuildKiteBuildsTable/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './BuildKiteBuildsTable'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-cloudsmith/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-cloudsmith/homepage-cloudsmith.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-cloudsmith/homepage-cloudsmith.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-cloudsmith/src/components/CloudsmithPackageListCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { Content } from './Content'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-cloudsmith/src/components/CloudsmithQuotaCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { Content } from './Content'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-cloudsmith/src/components/CloudsmithRepositoryAuditLogCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { Content } from './Content'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-cloudsmith/src/components/CloudsmithRepositorySecurityCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { Content } from './Content'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-cloudsmith/src/components/CloudsmithStatsCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { Content } from './Content'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-cloudsmith/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './plugin'; 18 | export { cloudsmithPlugin } from './plugin'; 19 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-cloudsmith/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import '@testing-library/jest-dom'; 18 | import 'cross-fetch/polyfill'; 19 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | '@typescript-eslint/camelcase': 0, 5 | }, 6 | }); 7 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/dev/index.tsx: -------------------------------------------------------------------------------- 1 | import { createDevApp } from '@backstage/dev-utils'; 2 | import { datadogPlugin } from '../src/plugin'; 3 | 4 | createDevApp().registerPlugin(datadogPlugin).render(); 5 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/docs/datadog-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-datadog/docs/datadog-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/docs/dd-backstage-tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-datadog/docs/dd-backstage-tab.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/docs/dd-dashboard-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-datadog/docs/dd-dashboard-2.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/docs/dd-dashboard-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-datadog/docs/dd-dashboard-share.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/docs/dd-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-datadog/docs/dd-dashboard.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/docs/dd-graph-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-datadog/docs/dd-graph-overview.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/docs/dd-graph-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-datadog/docs/dd-graph-share.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/src/alpha.ts: -------------------------------------------------------------------------------- 1 | import { convertLegacyRouteRefs } from '@backstage/core-compat-api'; 2 | import { 3 | FrontendPlugin, 4 | createFrontendPlugin, 5 | } from '@backstage/frontend-plugin-api'; 6 | import { entityContentRouteRef } from './plugin'; 7 | import { 8 | datadogApi, 9 | entityDatadogContent, 10 | entityDatadogGraphCard, 11 | } from './alpha/index'; 12 | 13 | /** 14 | * @alpha 15 | */ 16 | const plugin: FrontendPlugin = createFrontendPlugin({ 17 | id: 'datadog', 18 | // bind all the extensions to the plugin 19 | extensions: [datadogApi, entityDatadogContent, entityDatadogGraphCard], 20 | // convert old route refs to the new system 21 | routes: convertLegacyRouteRefs({ 22 | entityContent: entityContentRouteRef, 23 | }), 24 | }); 25 | 26 | export default plugin; 27 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/src/alpha/apis.ts: -------------------------------------------------------------------------------- 1 | import { 2 | ApiBlueprint, 3 | createApiFactory, 4 | discoveryApiRef, 5 | } from '@backstage/frontend-plugin-api'; 6 | import { datadogApiRef, DatadogApiClient } from '../api'; 7 | 8 | /** 9 | * @alpha 10 | */ 11 | export const datadogApi = ApiBlueprint.make({ 12 | params: { 13 | factory: createApiFactory({ 14 | api: datadogApiRef, 15 | deps: { discoveryApi: discoveryApiRef }, 16 | factory: ({ discoveryApi }) => new DatadogApiClient({ discoveryApi }), 17 | }), 18 | }, 19 | }); 20 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/src/alpha/entityCards.tsx: -------------------------------------------------------------------------------- 1 | import { EntityCardBlueprint } from '@backstage/plugin-catalog-react/alpha'; 2 | import { isDatadogGraphAvailable } from '../plugin'; 3 | 4 | /** 5 | * @alpha 6 | */ 7 | export const entityDatadogGraphCard = EntityCardBlueprint.make({ 8 | name: 'datadog-graph', 9 | params: { 10 | filter: isDatadogGraphAvailable, 11 | loader: () => 12 | import('../components/GraphWidget').then(m => ), 13 | }, 14 | }); 15 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/src/alpha/entityContent.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | compatWrapper, 3 | convertLegacyRouteRef, 4 | } from '@backstage/core-compat-api'; 5 | import { EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha'; 6 | import { entityContentRouteRef, isDatadogDashboardAvailable } from '../plugin'; 7 | 8 | /** 9 | * @alpha 10 | */ 11 | export const entityDatadogContent = EntityContentBlueprint.make({ 12 | name: 'entity', 13 | params: { 14 | defaultPath: '/datadog', 15 | defaultTitle: 'Datadog', 16 | filter: isDatadogDashboardAvailable, 17 | routeRef: convertLegacyRouteRef(entityContentRouteRef), 18 | loader: () => import('../Router').then(m => compatWrapper()), 19 | }, 20 | }); 21 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/src/alpha/index.ts: -------------------------------------------------------------------------------- 1 | export * from './apis'; 2 | export * from './entityCards'; 3 | export * from './entityContent'; 4 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/src/api/index.ts: -------------------------------------------------------------------------------- 1 | import { DiscoveryApi } from '@backstage/core-plugin-api'; 2 | import { ApiRef, createApiRef } from '@backstage/frontend-plugin-api'; 3 | 4 | export interface DatadogApi {} 5 | 6 | export const datadogApiRef: ApiRef = createApiRef({ 7 | id: 'plugin.datadog.service', 8 | }); 9 | 10 | export type Options = { 11 | discoveryApi: DiscoveryApi; 12 | proxyPath?: string; 13 | }; 14 | 15 | export class DatadogApiClient implements DatadogApi { 16 | // @ts-ignore 17 | private readonly discoveryApi: DiscoveryApi; 18 | 19 | constructor(options: Options) { 20 | this.discoveryApi = options.discoveryApi; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/src/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | datadogPlugin as plugin, 3 | isDatadogGraphAvailable, 4 | isDatadogDashboardAvailable, 5 | isDatadogAvailable, 6 | EntityDatadogGraphCard, 7 | EntityDatadogContent, 8 | } from './plugin'; 9 | export * from './api'; 10 | export * from './Router'; 11 | export { GraphWidget } from './components/GraphWidget'; 12 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import '@testing-library/jest-dom'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-datadog/src/types.ts: -------------------------------------------------------------------------------- 1 | export type DataDogResponse = {}; 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org/ 2 | engine-strict=true 3 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/app-config.yaml: -------------------------------------------------------------------------------- 1 | # Stub app config needed to run with yarn start 2 | app: 3 | title: backstage example app 4 | baseUrl: http://localhost:3000 5 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/docs/code-insights-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-insights/docs/code-insights-plugin.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/docs/compliance-report-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-insights/docs/compliance-report-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/docs/contributors-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-insights/docs/contributors-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/docs/environments-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-insights/docs/environments-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/docs/languages-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-insights/docs/languages-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/docs/readme-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-insights/docs/readme-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/docs/releases-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-insights/docs/releases-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/src/components/InsightsPage/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { InsightsPage } from './InsightsPage'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/src/components/Widgets/ComplianceCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './ComplianceCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/src/components/Widgets/ContributorsCard/components/Contributor/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './Contributor'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/src/components/Widgets/ContributorsCard/components/ContributorsList/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './ContributorsList'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/src/components/Widgets/ContributorsCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './ContributorsCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/src/components/Widgets/EnvironmentsCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './EnvironmentsCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/src/components/Widgets/LanguagesCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './LanguagesCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/src/components/Widgets/MarkdownContent/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './MarkdownContent'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/src/components/Widgets/ReadMeCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './ReadMeCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-insights/src/components/Widgets/ReleasesCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './ReleasesCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | }, 5 | }); 6 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org/ 2 | engine-strict=true 3 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/app-config.yaml: -------------------------------------------------------------------------------- 1 | # Stub app config needed to run with yarn start 2 | app: 3 | title: backstage example app 4 | baseUrl: http://localhost:3000 5 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/docs/github-pullrequests-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-pull-requests/docs/github-pullrequests-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/docs/homepage-components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-pull-requests/docs/homepage-components.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/docs/index.md: -------------------------------------------------------------------------------- 1 | Docs go here 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/docs/list-of-pull-requests-and-stats-tab-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-pull-requests/docs/list-of-pull-requests-and-stats-tab-view.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/docs/list-of-pull-requests-and-stats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-pull-requests/docs/list-of-pull-requests-and-stats.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/docs/list-of-team-assigned-prs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-github-pull-requests/docs/list-of-team-assigned-prs.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/docs/releasing.md: -------------------------------------------------------------------------------- 1 | # How to release 2 | 3 | This plugin uses the [npm-publish-action](https://github.com/marketplace/actions/publish-to-npm) GutHub Action to automate releases. It expects commits to be titled in a very specific way. 4 | 5 | To publish a new version, 6 | 7 | 1. Manually bump the version in the `package.json` file. 8 | 2. Commit the version bump the exact title: "Release 1.2.3". 9 | 10 | Do **not** use `yarn version --new-version [version]`. Doing so will automatically add a commit 11 | and tag which will then clash with the commit and tag that the automation creates. 12 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: 'backstage-plugin-github-pull-requests' 2 | 3 | nav: 4 | - Home: index.md 5 | - Releasing: releasing.md 6 | 7 | plugins: 8 | - techdocs-core 9 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/src/api/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './GithubPullRequestsApi'; 18 | export * from './GithubPullRequestsClient'; 19 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/src/components/GroupPullRequestsCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | export { Content } from './Content'; 15 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/src/components/Home/RequestedReviewsCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { Content } from './Content'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/src/components/Home/YourOpenPullRequestsCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { Content } from './Content'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/src/components/PullRequestsPage/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default } from './PullRequestsPage'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/src/components/PullRequestsStatsCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default as PullRequestsStatsCard } from './PullRequestsStatsCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/src/mocks/githubAuthApi.ts: -------------------------------------------------------------------------------- 1 | const mockAccessToken = jest 2 | .fn() 3 | .mockImplementation(async (_: string[]) => 'test-token'); 4 | 5 | const getMockGithubAuth = (state: 'SignedIn' | 'SignedOut') => ({ 6 | getAccessToken: mockAccessToken, 7 | sessionState$: jest.fn(() => ({ 8 | subscribe: (fn: (a: string) => void) => { 9 | fn(state); 10 | return { unsubscribe: jest.fn() }; 11 | }, 12 | })), 13 | }); 14 | 15 | export const SignedInMockGithubAuthState = getMockGithubAuth('SignedIn'); 16 | export const SignedOutMockGithubAuthState = getMockGithubAuth('SignedOut'); 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-github-pull-requests/src/utils/githubUtils.ts: -------------------------------------------------------------------------------- 1 | import { 2 | ANNOTATION_LOCATION, 3 | ANNOTATION_SOURCE_LOCATION, 4 | Entity, 5 | } from '@backstage/catalog-model'; 6 | import gitUrlParse from 'git-url-parse'; 7 | 8 | export const getHostname = (entity: Entity) => { 9 | const location = 10 | entity?.metadata.annotations?.[ANNOTATION_SOURCE_LOCATION] ?? 11 | entity?.metadata.annotations?.[ANNOTATION_LOCATION]; 12 | 13 | return location?.startsWith('url:') 14 | ? gitUrlParse(location.slice(4)).resource 15 | : undefined; 16 | }; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-iframe/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | }, 5 | }); 6 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-iframe/app-config.yaml: -------------------------------------------------------------------------------- 1 | # Stub app config needed to run with yarn start 2 | app: 3 | title: backstage example app 4 | baseUrl: http://localhost:3000 5 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-iframe/src/components/ErrorComponent.tsx: -------------------------------------------------------------------------------- 1 | import { Grid, Typography } from '@material-ui/core'; 2 | 3 | export const ErrorComponent = ({ errorMessage }: { errorMessage: string }) => { 4 | return ( 5 | 6 | 7 | {errorMessage} 8 | 9 | 10 | ); 11 | }; 12 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-iframe/src/components/index.ts: -------------------------------------------------------------------------------- 1 | export { IFrameCard } from './IFrameComponent'; 2 | export { IFramePage } from './IFramePage'; 3 | export { IFrameContent } from './IFrameContent'; 4 | export { Content } from './HomePageCard'; 5 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-iframe/src/components/utils/helpers.ts: -------------------------------------------------------------------------------- 1 | export const determineError = ( 2 | src: string, 3 | allowList: string[] | undefined, 4 | ) => { 5 | if (src === '') { 6 | return 'No src field provided. Please pass it in as a prop to populate the iframe.'; 7 | } else if (!src.startsWith('https://')) { 8 | return `Src '${src}' for Iframe must be a https protocol but is not.`; 9 | } else if (src && allowList && !allowList.includes(new URL(src).hostname)) { 10 | return `Src ${src} for Iframe is not included in the allowlist ${allowList.join( 11 | ',', 12 | )}.`; 13 | } 14 | return ''; 15 | }; 16 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-iframe/src/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | iframePlugin, 3 | EntityIFrameCard, 4 | IFramePage, 5 | EntityIFrameContent, 6 | HomePageIFrameCard, 7 | } from './plugin'; 8 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/.changeset/silent-pots-sip.md: -------------------------------------------------------------------------------- 1 | --- 2 | '@roadiehq/backstage-plugin-jira': patch 3 | --- 4 | 5 | Jira tile no longer makes separate unnecessary API calls to get issue counts for issue types. 6 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org/ 2 | engine-strict=true -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/docs/index.md: -------------------------------------------------------------------------------- 1 | Docs go here 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/docs/jira-plugin-issues-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-jira/docs/jira-plugin-issues-view.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/docs/jira-plugin.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-jira/docs/jira-plugin.gif -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/docs/my-jira-tickets-card.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-jira/docs/my-jira-tickets-card.jpg -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/docs/releasing.md: -------------------------------------------------------------------------------- 1 | # How to release 2 | 3 | This plugin uses the [npm-publish-action](https://github.com/marketplace/actions/publish-to-npm) GutHub Action to automate releases. It expects commits to be titled in a very specific way. 4 | 5 | To publish a new version, 6 | 7 | 1. Manually bump the version in the `package.json` file. 8 | 2. Commit the version bump the exact title: "Release 1.2.3". 9 | 10 | Do **not** use `yarn version --new-version [version]`. Doing so will automatically add a commit 11 | and tag which will then clash with the commit and tag that the automation creates. 12 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/src/api/strategies/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2025 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './base'; 18 | export * from './factory'; 19 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/src/components/EntityJiraQueryCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { EntityJiraQueryCard } from './EntityJiraQueryCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/src/components/Home/MyJiraTicketsCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { Content } from './Content'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/src/components/IssuesTable/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './IssuesTable'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/src/components/JiraOverviewCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { JiraOverviewCard } from './JiraOverviewCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/src/components/JiraQueryCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './JiraQueryCard'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-jira/techdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: 'backstage-plugin-jira' 2 | 3 | nav: 4 | - Home: index.md 5 | - Releasing: releasing.md 6 | 7 | plugins: 8 | - techdocs-core 9 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-launchdarkly/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | }, 5 | }); 6 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-launchdarkly/card-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-launchdarkly/card-screenshot.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-launchdarkly/src/plugin.test.ts: -------------------------------------------------------------------------------- 1 | import { launchdarklyPlugin } from './plugin'; 2 | 3 | describe('launchdarkly', () => { 4 | it('should export plugin', () => { 5 | expect(launchdarklyPlugin).toBeDefined(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-launchdarkly/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | import '@testing-library/jest-dom'; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-prometheus/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-prometheus/docs/prom_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-prometheus/docs/prom_alert.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-prometheus/docs/prom_alert_filtered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-prometheus/docs/prom_alert_filtered.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-prometheus/docs/prom_areagraph_widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-prometheus/docs/prom_areagraph_widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-prometheus/docs/prom_entity_content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-prometheus/docs/prom_entity_content.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-prometheus/docs/prom_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-prometheus/docs/prom_graph.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-prometheus/docs/prom_graph_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-prometheus/docs/prom_graph_hover.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-prometheus/docs/prom_graph_query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-prometheus/docs/prom_graph_query.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-prometheus/src/mocks/mockQueryResponse.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": "success", 3 | "data": { 4 | "resultType": "matrix", 5 | "result": [ 6 | { 7 | "metric": { 8 | "__name__": "memUsage", 9 | "component": "node-exporter" 10 | }, 11 | "values": [ 12 | [1633001642.261, "6465519616"], 13 | [1633001656.261, "6465519616"] 14 | ] 15 | } 16 | ] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-prometheus/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | import '@testing-library/jest-dom'; 17 | import 'cross-fetch/polyfill'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | 'react-hooks/exhaustive-deps': 'off', 5 | 'no-param-reassign': 'off', 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org/ 2 | engine-strict=true 3 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/app-config.yaml: -------------------------------------------------------------------------------- 1 | # Stub app config needed to run with yarn start 2 | app: 3 | title: backstage example app 4 | baseUrl: http://localhost:3000 5 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/docs/backstage-plugin-security-widget-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-security-insights/docs/backstage-plugin-security-widget-1.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/docs/backstage-plugin-security-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-security-insights/docs/backstage-plugin-security-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/docs/roadie-backstage-dependabot-alerts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-security-insights/docs/roadie-backstage-dependabot-alerts.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/docs/roadie-backstage-dependabot-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-security-insights/docs/roadie-backstage-dependabot-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/docs/roadie-backstage-security-plugin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-security-insights/docs/roadie-backstage-security-plugin.jpg -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/src/components/DependabotAlertsTable/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { DependabotAlertsTable } from './DependabotAlertsTable'; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/src/components/DependabotAlertsWidget/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { DependabotAlertsWidget } from './DependabotAlertsWidget'; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/src/components/GithubDependabotTab/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { GithubDependabotTab } from './GithubDependabotTab'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/src/components/SecurityInsightsTab/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './SecurityInsightsTab'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/src/components/SecurityInsightsTable/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { SecurityInsightsTable } from './SecurityInsightsTable'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/src/components/SecurityInsightsWidget/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { SecurityInsightsWidget } from './SecurityInsightsWidget'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-security-insights/src/components/UpdateSeverityStatusModal/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { UpdateSeverityStatusModal } from './UpdateSeverityStatusModal'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-shortcut/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-shortcut/docs/shortcut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-shortcut/docs/shortcut.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-shortcut/src/api/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './ShortcutClient'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-shortcut/src/components/Home/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { Content } from './StoriesCardHomepage'; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-shortcut/src/constants.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export const SHORTCUT_QUERY_ANNOTATION = 'shortcut.com/story-query'; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-shortcut/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | import '@testing-library/jest-dom'; 17 | import 'cross-fetch/polyfill'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | }, 5 | }); 6 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/.npmrc: -------------------------------------------------------------------------------- 1 | registry=http://registry.npmjs.org/ 2 | engine-strict=true 3 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | | Version | Supported | 6 | | ------- | ------------------ | 7 | | 0.x | :white_check_mark: | 8 | 9 | ## Reporting a Vulnerability 10 | 11 | Please report security issues via security@roadie.io 12 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/dev/index.tsx: -------------------------------------------------------------------------------- 1 | import { createDevApp } from '@backstage/dev-utils'; 2 | import { travisciPlugin } from '../src'; 3 | 4 | createDevApp().registerPlugin(travisciPlugin).render(); 5 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/docs/travis-ci-plugin-1642x1027.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-travis-ci/docs/travis-ci-plugin-1642x1027.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/src/api/constants.ts: -------------------------------------------------------------------------------- 1 | export const API_BASE_URL = '/api/proxy/travisci/api'; 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/src/components/BuildsPage/index.ts: -------------------------------------------------------------------------------- 1 | export { Builds } from './BuildsPage'; 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/src/components/BuildsPage/lib/Builds/index.ts: -------------------------------------------------------------------------------- 1 | export { Builds } from './Builds'; 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/src/components/BuildsPage/lib/CITable/index.ts: -------------------------------------------------------------------------------- 1 | export { CITable } from './CITable'; 2 | export type { CITableBuildInfo } from './CITable'; 3 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/src/components/RecentTravisCIBuildsWidget.tsx: -------------------------------------------------------------------------------- 1 | import { Entity } from '@backstage/catalog-model'; 2 | import { FC } from 'react'; 3 | import { ContextProvider } from './ContextProvider'; 4 | import { LastBuildCard } from './LastBuildCard'; 5 | 6 | type Props = { 7 | entity: Entity; 8 | }; 9 | 10 | export const RecentTravisCIBuildsWidget: FC = ({ entity }) => { 11 | return ( 12 | 13 | 14 | 15 | ); 16 | }; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/src/components/TravisCiBuildsPage.tsx: -------------------------------------------------------------------------------- 1 | import { Entity } from '@backstage/catalog-model'; 2 | import { FC } from 'react'; 3 | import { Builds } from './BuildsPage'; 4 | import { ContextProvider } from './ContextProvider'; 5 | 6 | type Props = { 7 | entity: Entity; 8 | }; 9 | 10 | export const TravisCIBuildsPage: FC = ({ entity }) => { 11 | return ( 12 | 13 | 14 | 15 | ); 16 | }; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/src/hooks/useAsyncPolling.ts: -------------------------------------------------------------------------------- 1 | import { useRef } from 'react'; 2 | 3 | export const useAsyncPolling = ( 4 | pollingFn: () => Promise, 5 | interval: number, 6 | ) => { 7 | const isPolling = useRef(false); 8 | const startPolling = async () => { 9 | if (isPolling.current) return; 10 | isPolling.current = true; 11 | 12 | while (isPolling.current) { 13 | await pollingFn(); 14 | await new Promise(resolve => setTimeout(resolve, interval)); 15 | } 16 | }; 17 | 18 | const stopPolling = () => { 19 | isPolling.current = false; 20 | }; 21 | return { startPolling, stopPolling }; 22 | }; 23 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/src/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | /** 3 | * @deprecated From 0.2.0 new name 'travisciPlugin' should be used 4 | */ 5 | travisciPlugin as plugin, 6 | travisciPlugin, 7 | EntityTravisCIContent, 8 | EntityTravisCIOverviewCard, 9 | } from './plugin'; 10 | export * from './api'; 11 | export { 12 | /** 13 | * @deprecated From 0.2.0 composability API should be used 14 | */ 15 | Router, 16 | /** 17 | * @deprecated From 0.2.0 new name 'isTravisciAvailable' should be used 18 | */ 19 | isTravisciAvailable as isPluginApplicableToEntity, 20 | isTravisciAvailable, 21 | } from './Router'; 22 | export { 23 | /** 24 | * @deprecated From 0.2.0 composability API should be used 25 | */ 26 | RecentTravisCIBuildsWidget, 27 | } from './components/RecentTravisCIBuildsWidget'; 28 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-travis-ci/src/plugin.test.ts: -------------------------------------------------------------------------------- 1 | import { travisciPlugin } from './plugin'; 2 | 3 | describe('travis-ci', () => { 4 | it('should export plugin', () => { 5 | expect(travisciPlugin).toBeDefined(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/docs/issues-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-wiz/docs/issues-chart.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/docs/issues-widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-wiz/docs/issues-widget.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/docs/missing-annotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-wiz/docs/missing-annotation.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/docs/severity-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-wiz/docs/severity-graph.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/docs/wiz-expanded-issues.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-wiz/docs/wiz-expanded-issues.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/docs/wiz-issues.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-wiz/docs/wiz-issues.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/src/api/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './WizAPI'; 18 | export * from './WizClient'; 19 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/src/assets/wiz-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/backstage-plugin-wiz/src/assets/wiz-logo.png -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/src/components/Issues/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { Issues } from './Issues'; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/src/components/IssuesWidget/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { IssuesWidget } from './IssuesWidget'; 17 | export { EntityIssuesWidget } from './EntityIssuesWidget'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/src/components/constants.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export const WIZ_PROJECT_ANNOTATION = 'wiz.io/project-id'; 17 | -------------------------------------------------------------------------------- /plugins/frontend/backstage-plugin-wiz/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | import '@testing-library/jest-dom'; 17 | -------------------------------------------------------------------------------- /plugins/frontend/github-auth-utils-react/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/frontend/github-auth-utils-react/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # @roadiehq/github-auth-utils-react 2 | 3 | ## 1.1.0 4 | 5 | ### Minor Changes 6 | 7 | - f215405: Upgrade to 1.40.2 8 | 9 | ## 1.0.2 10 | 11 | ### Patch Changes 12 | 13 | - a83e7e9: Tidy unused plugin depdendencies. 14 | 15 | ## 1.0.1 16 | 17 | ### Patch Changes 18 | 19 | - 3537934: Modify published package to point to the correct entry file. 20 | 21 | ## 1.0.0 22 | 23 | ### Major Changes 24 | 25 | - 1dd9384: Release GH auth utils first version. 26 | 27 | ## 0.2.0 28 | 29 | ### Minor Changes 30 | 31 | - 5dba102: Create a shareable package to manage GitHub plugins auth state. This allows plugins using GitHub OAuth to use common functionality to show/hide components based on logged in scopes and urls 32 | -------------------------------------------------------------------------------- /plugins/frontend/github-auth-utils-react/README.md: -------------------------------------------------------------------------------- 1 | # @roadiehq/github-auth-utils-react 2 | -------------------------------------------------------------------------------- /plugins/frontend/github-auth-utils-react/catalog-info.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: backstage.io/v1alpha1 2 | kind: Component 3 | metadata: 4 | name: github-auth-utils-react 5 | title: '@roadiehq/github-auth-utils-react' 6 | description: >- 7 | Common functionality for GitHub frontend OAuth authentication 8 | spec: 9 | lifecycle: production 10 | type: common-library 11 | owner: engineering 12 | -------------------------------------------------------------------------------- /plugins/frontend/github-auth-utils-react/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2025 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './hooks/useGithubLoggedIn'; 18 | export * from './components'; 19 | -------------------------------------------------------------------------------- /plugins/frontend/rag-ai/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/frontend/rag-ai/docs/api-spec-query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/rag-ai/docs/api-spec-query.png -------------------------------------------------------------------------------- /plugins/frontend/rag-ai/docs/empty-modal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/rag-ai/docs/empty-modal.png -------------------------------------------------------------------------------- /plugins/frontend/rag-ai/docs/petstore-rag-openapi-example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/rag-ai/docs/petstore-rag-openapi-example.gif -------------------------------------------------------------------------------- /plugins/frontend/rag-ai/docs/simple-q-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/frontend/rag-ai/docs/simple-q-a.png -------------------------------------------------------------------------------- /plugins/frontend/rag-ai/src/api/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { ragAiApiRef } from './ragApi'; 17 | export { RoadieRagAiClient } from './client'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/rag-ai/src/components/RagModal/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { UncontrolledRagModal } from './RagModal'; 17 | export { SidebarRagModal } from './SidebarRagModal'; 18 | -------------------------------------------------------------------------------- /plugins/frontend/rag-ai/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { ragAiPlugin, RagModal, SidebarRagModal } from './plugin'; 17 | export { RoadieRagAiClient, ragAiApiRef } from './api'; 18 | -------------------------------------------------------------------------------- /plugins/home/backstage-plugin-home-markdown/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/home/backstage-plugin-home-markdown/docs/home-page-markdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/home/backstage-plugin-home-markdown/docs/home-page-markdown.png -------------------------------------------------------------------------------- /plugins/home/backstage-plugin-home-markdown/src/MarkdownCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { Content } from './Content'; 18 | -------------------------------------------------------------------------------- /plugins/home/backstage-plugin-home-markdown/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { HomePageMarkdown, markdownPlugin } from './plugin'; 18 | -------------------------------------------------------------------------------- /plugins/home/backstage-plugin-home-rss/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 18 | -------------------------------------------------------------------------------- /plugins/home/backstage-plugin-home-rss/src/RSSCard/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { Content } from './Content'; 18 | export { type DataItem } from './types'; 19 | -------------------------------------------------------------------------------- /plugins/home/backstage-plugin-home-rss/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { HomePageRSS, rssPlugin } from './plugin'; 18 | export { type DataItem } from './RSSCard'; 19 | -------------------------------------------------------------------------------- /plugins/roadie-backstage-entity-validator/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { 2 | rules: { 3 | 'notice/notice': 'off', 4 | '@typescript-eslint/camelcase': 0, 5 | 'no-console': [0], 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /plugins/roadie-backstage-entity-validator/README.md: -------------------------------------------------------------------------------- 1 | # Roadie Backstage entity validator 2 | 3 | This is a library package used to validate entity files. 4 | 5 | It exports two methods: 6 | 7 | ```typescript 8 | export const validateFromFile: ( 9 | filepath: string, 10 | verbose: boolean, 11 | customAnnotationSchemaLocation: string, 12 | ) => Promise; 13 | export const validate: ( 14 | fileContents: string, 15 | verbose: boolean, 16 | customAnnotationSchemaLocation: string, 17 | ) => Promise; 18 | ``` 19 | 20 | --- 21 | 22 | Roadie gives you a hassle-free, fully customisable SaaS Backstage. Find out more here: [https://roadie.io](https://roadie.io). 23 | -------------------------------------------------------------------------------- /plugins/roadie-backstage-entity-validator/src/index.ts: -------------------------------------------------------------------------------- 1 | export { validate, validateFromFile } from './validator'; 2 | -------------------------------------------------------------------------------- /plugins/roadie-backstage-entity-validator/types.d.ts: -------------------------------------------------------------------------------- 1 | import { Entity } from '@backstage/catalog-model'; 2 | 3 | export const validateFromFile: ( 4 | filepath: string, 5 | verbose: boolean, 6 | ) => Promise; 7 | export const validate: ( 8 | fileContents: string, 9 | verbose: boolean, 10 | ) => Promise; 11 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-argocd/src/actions/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export * from './run'; 17 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-argocd/src/actions/run/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { createArgoCdResources } from './argocd'; 17 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-argocd/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export * from './actions'; 17 | export { scaffolderBackendArgoCD as default } from './module'; 18 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-aws/src/actions/ecr/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { createEcrAction } from './create'; 18 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-aws/src/actions/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2025 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export * from './ecr'; 17 | export * from './s3'; 18 | export * from './secrets-manager'; 19 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-aws/src/actions/s3/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { createAwsS3CpAction } from './cp'; 17 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-aws/src/actions/secrets-manager/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { createAwsSecretsManagerCreateAction } from './create'; 17 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-http-request/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-http-request/api-report.md: -------------------------------------------------------------------------------- 1 | ## API Report File for "@roadiehq/scaffolder-backend-module-http-request" 2 | 3 | > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). 4 | 5 | ```ts 6 | import { Config } from '@backstage/config'; 7 | import { TemplateAction } from '@backstage/plugin-scaffolder-backend'; 8 | 9 | // @public (undocumented) 10 | export function createHttpBackstageAction(options: { 11 | config: Config; 12 | }): TemplateAction; 13 | 14 | // (No @packageDocumentation comment for this package) 15 | ``` 16 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-http-request/src/actions/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export * from './run'; 17 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-http-request/src/actions/run/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { createHttpBackstageAction } from './backstageRequest'; 17 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-http-request/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export * from './actions'; 17 | export { scaffolderBackendModuleHttpRequest as default } from './module'; 18 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-http-request/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import 'cross-fetch/polyfill'; 18 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-utils/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | import '@testing-library/jest-dom'; 17 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-utils/src/actions/merge/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { createMergeJSONAction, createMergeAction } from './merge'; 17 | -------------------------------------------------------------------------------- /plugins/scaffolder-actions/scaffolder-backend-module-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export * from './actions'; 17 | export { scaffolderBackendModuleUtils as default } from './module'; 18 | -------------------------------------------------------------------------------- /plugins/scaffolder-field-extensions/scaffolder-frontend-module-http-request-field/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); 2 | -------------------------------------------------------------------------------- /plugins/scaffolder-field-extensions/scaffolder-frontend-module-http-request-field/images/dropdown_sample_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/scaffolder-field-extensions/scaffolder-frontend-module-http-request-field/images/dropdown_sample_closed.png -------------------------------------------------------------------------------- /plugins/scaffolder-field-extensions/scaffolder-frontend-module-http-request-field/images/dropdown_sample_opened.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RoadieHQ/roadie-backstage-plugins/c550b479083299703abe68e7930df338da7e3032/plugins/scaffolder-field-extensions/scaffolder-frontend-module-http-request-field/images/dropdown_sample_opened.png -------------------------------------------------------------------------------- /plugins/scaffolder-field-extensions/scaffolder-frontend-module-http-request-field/src/components/SelectFieldFromApi/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export * from './SelectFieldFromApi'; 17 | -------------------------------------------------------------------------------- /plugins/scaffolder-field-extensions/scaffolder-frontend-module-http-request-field/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | export { SelectFieldFromApiExtension } from './plugin'; 17 | -------------------------------------------------------------------------------- /plugins/scaffolder-field-extensions/scaffolder-frontend-module-http-request-field/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Larder Software Limited 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | import '@testing-library/jest-dom'; 17 | import 'cross-fetch/polyfill'; 18 | -------------------------------------------------------------------------------- /scripts/copyright-header.txt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright <%= YEAR %> <%= NAME %> 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@backstage/cli/config/tsconfig.json", 3 | "include": [ 4 | "packages/**/src", 5 | "plugins/**/src", 6 | "plugins/**/dev", 7 | "plugins/**/migrations", 8 | "packages/app/cypress/types.d.ts", 9 | "packages/app/cypress/integration/*", 10 | "packages/app/cypress/plugins/*" 11 | ], 12 | "exclude": ["node_modules"], 13 | "compilerOptions": { 14 | "rootDir": ".", 15 | "outDir": "dist-types", 16 | "jsx": "react-jsx" 17 | } 18 | } 19 | --------------------------------------------------------------------------------