Backstage is an open framework for building developer portals
This report summarizes scanner evidence for backstage/backstage, a TypeScript project with 34,748 GitHub stars. SynthScan examined 2,272,483 lines of code across 10815 source files, recording 1067 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 0.9 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 756 finding(s).
Are imports declared and package/API names verified? 296 finding(s).
Are wrappers, guards, and repeated structures necessary? 629 finding(s).
Which changes need focused human review? 1067 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1067 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …/catalog-backend/src/providers/DefaultLocationStore.ts | 218 | if (this.db.client.config.client.includes('mysql')) { | CODE |
| CRITICAL | …ons-backend/src/database/DatabaseNotificationsStore.ts | 131 | this.isSQLite = this.db.client.config.client.includes('sqlite3'); | CODE |
| CRITICAL | plugins/auth-backend/src/database/OidcDatabase.ts | 181 | this.db.client.config.client.includes('sqlite3') || | CODE |
| CRITICAL | plugins/auth-backend/src/database/OidcDatabase.ts | 182 | this.db.client.config.client.includes('mysql') | CODE |
| CRITICAL | plugins/auth-backend/src/database/OidcDatabase.ts | 279 | this.db.client.config.client.includes('sqlite3') || | CODE |
| CRITICAL | plugins/auth-backend/src/database/OidcDatabase.ts | 280 | this.db.client.config.client.includes('mysql') | CODE |
| CRITICAL | plugins/catalog-backend-module-gitlab/src/lib/client.ts | 310 | for (const groupItem of response.data.group.descendantGroups.nodes.filter( | CODE |
| CRITICAL | plugins/catalog-backend-module-gitlab/src/lib/client.ts | 394 | for (const userItem of response.data.group.groupMembers.nodes.filter( | CODE |
| CRITICAL | …ugins/bitbucket-cloud-common/scripts/prepare-schema.js | 107 | const repoProperties = json.components.schemas.repository.allOf.find( | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 218 | const errorCalls = mocks.console.error.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 220 | const warnCalls = mocks.console.warn.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 223 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 225 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 278 | const errorCalls = mocks.console.error.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 280 | const warnCalls = mocks.console.warn.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 289 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 293 | const debugCalls = mocks.console.debug.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 297 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([ | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 400 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 405 | const debugCalls = mocks.console.debug.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 410 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([ | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 499 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 504 | const debugCalls = mocks.console.debug.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 508 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([ | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 560 | const errorCalls = mocks.console.error.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 562 | const warnCalls = mocks.console.warn.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 571 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 575 | const debugCalls = mocks.console.debug.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 579 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([ | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 612 | const errorCalls = mocks.console.error.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 616 | const warnCalls = mocks.console.warn.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 619 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 621 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 649 | const errorCalls = mocks.console.error.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 653 | const warnCalls = mocks.console.warn.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 656 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 658 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 748 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 752 | const debugCalls = mocks.console.debug.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 757 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([ | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 845 | const errorCalls = mocks.console.error.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 847 | const warnCalls = mocks.console.warn.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 856 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 861 | const debugCalls = mocks.console.debug.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 867 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([ | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 962 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 966 | const debugCalls = mocks.console.debug.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 972 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([ | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1062 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1066 | const debugCalls = mocks.console.debug.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1071 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([ | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1155 | const errorCalls = mocks.console.error.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1157 | const warnCalls = mocks.console.warn.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1159 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1161 | const debugCalls = mocks.console.debug.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1238 | const errorCalls = mocks.console.error.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1242 | const warnCalls = mocks.console.warn.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1244 | const infoCalls = mocks.console.info.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1246 | const debugCalls = mocks.console.debug.mock.calls.flatMap(e => e[0]); | CODE |
| CRITICAL⚡ | …es/frontend-dynamic-feature-loader/src/loader.test.tsx | 1248 | expect(mocks.federation.get.mock.calls.flatMap(e => e[0])).toEqual([]); | CODE |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs-ui/src/app/components/table/components.tsx | 507 | export function ColumnWidthsWithFrExample() { | CODE |
| LOW | docs-ui/src/app/components/table/components.tsx | 560 | export function ColumnWidthsWithConstraintsExample() { | CODE |
| LOW | …ackend-module-cloudflare-access-provider/report.api.md | 63 | export function createCloudflareAccessAuthenticator(options?: { | CODE |
| LOW | …module-cloudflare-access-provider/src/authenticator.ts | 30 | export function createCloudflareAccessAuthenticator(options?: { | CODE |
| LOW | …ermission-node/src/integration/permissionRuleParams.ts | 64 | export function assertPermissionRuleParamsSchema( | CODE |
| LOW | …ermission-node/src/integration/permissionRuleParams.ts | 82 | export function validatePermissionRuleParams( | CODE |
| LOW | …ermission-node/src/integration/permissionRuleParams.ts | 113 | export function permissionRuleParamsToJsonSchema( | CODE |
| LOW | …log-backend-module-bitbucket-cloud/report-alpha.api.md | 10 | export function analyzeBitbucketCloudWebhookEvent( | CODE |
| LOW | …-cloud/src/events/analyzeBitbucketCloudWebhookEvent.ts | 219 | export async function analyzeBitbucketCloudWebhookEvent( | CODE |
| LOW | …affolder-backend-module-bitbucket-server/report.api.md | 16 | export function createPublishBitbucketServerAction(options: { | CODE |
| LOW | …affolder-backend-module-bitbucket-server/report.api.md | 42 | export function createPublishBitbucketServerPullRequestAction(options: { | CODE |
| LOW | …module-bitbucket-server/src/actions/bitbucketServer.ts | 123 | export function createPublishBitbucketServerAction(options: { | CODE |
| LOW | …ucket-server/src/actions/bitbucketServerPullRequest.ts | 245 | export function createPublishBitbucketServerPullRequestAction(options: { | CODE |
| LOW | plugins/techdocs-react/report.api.md | 34 | export function createTechDocsAddonExtension( | CODE |
| LOW | plugins/techdocs-react/report.api.md | 44 | export function getEntityRootTechDocsPath(entity: Entity): string; | CODE |
| LOW | plugins/techdocs-react/report.api.md | 180 | export function toLowercaseEntityRefMaybe( | CODE |
| LOW | plugins/techdocs-react/src/helpers.ts | 35 | export function toLowercaseEntityRefMaybe( | CODE |
| LOW | plugins/techdocs-react/src/helpers.ts | 54 | export function getEntityRootTechDocsPath(entity: Entity): string { | CODE |
| LOW | plugins/techdocs-react/src/addons.tsx | 58 | export function createTechDocsAddonExtension( | CODE |
| LOW | plugins/catalog-backend-module-openapi/report.api.md | 22 | export function jsonSchemaRefPlaceholderResolver( | CODE |
| LOW | …module-openapi/src/jsonSchemaRefPlaceholderResolver.ts | 25 | export async function jsonSchemaRefPlaceholderResolver( | CODE |
| LOW | plugins/home/src/api/config.ts | 75 | export function createFilterByQueryParamFromConfig( | CODE |
| LOW | plugins/scaffolder-backend-module-gerrit/report.api.md | 12 | export function createPublishGerritAction(options: { | CODE |
| LOW | plugins/scaffolder-backend-module-gerrit/report.api.md | 35 | export function createPublishGerritReviewAction(options: { | CODE |
| LOW | …scaffolder-backend-module-gerrit/src/actions/gerrit.ts | 88 | export function createPublishGerritAction(options: { | CODE |
| LOW | …lder-backend-module-gerrit/src/actions/gerritReview.ts | 38 | export function createPublishGerritReviewAction(options: { | CODE |
| LOW | …chdocs/src/collators/DefaultTechDocsCollatorFactory.ts | 266 | function getSimpleEntityOwnerString(entity: Entity): string { | CODE |
| LOW | …/scaffolder/src/components/OngoingTask/OngoingTask.tsx | 84 | function OngoingTaskAnalyticsContext(props: { children: ReactNode }) { | CODE |
| LOW | …ponents/fields/MultiEntityPicker/MultiEntityPicker.tsx | 403 | function convertSchemaFiltersToQuery( | CODE |
| LOW | …ponents/fields/OwnedEntityPicker/OwnedEntityPicker.tsx | 121 | function buildEntityPickerUISchema( | CODE |
| LOW | …er/src/components/fields/EntityPicker/EntityPicker.tsx | 412 | function convertSchemaFiltersToQuery( | CODE |
| LOW | …s/scaffolder/src/alpha/components/TemplatesSubPage.tsx | 193 | function TemplateWizardWithBreadcrumb(props: { | CODE |
| LOW | …gins/scaffolder/src/alpha/components/EditorSubPage.tsx | 81 | export function buildEditorFieldExtensions( | CODE |
| LOW | …s/TemplateWizardPage/TemplateWizardPageContextMenu.tsx | 41 | export function TemplateWizardPageContextMenu( | CODE |
| LOW | …s/TemplateEditorPage/TemplateEditorToolbarFileMenu.tsx | 27 | export function TemplateEditorToolbarFileMenu(props: { | CODE |
| LOW | …mponents/TemplateEditorPage/TemplateEditorTextArea.tsx | 153 | export function TemplateEditorDirectoryEditorTextArea(props: { | CODE |
| LOW | …a/components/TemplateEditorPage/TemplateEditorForm.tsx | 206 | export function TemplateEditorFormDirectoryEditorDryRun( | CODE |
| LOW | …plateEditorPage/TemplateEditorToolbarTemplatesMenu.tsx | 41 | export function TemplateEditorToolbarTemplatesMenu(props: { | CODE |
| LOW | …TemplateEditorPage/DryRunResults/DryRunResultsList.tsx | 117 | async function downloadDirectoryContents( | CODE |
| LOW | …omePageFeaturedTemplates/HomePageFeaturedTemplates.tsx | 45 | export function HomePageFeaturedTemplates({ | CODE |
| LOW | …src/alpha/hooks/useScaffolderTemplateIconLinkProps.tsx | 32 | export function useScaffolderTemplateIconLinkProps() { | CODE |
| LOW | plugins/catalog-backend/report.api.md | 93 | export function transformLegacyPolicyToProcessor( | CODE |
| LOW | plugins/catalog-backend/src/database/metrics.ts | 43 | export function createEntitiesCountByKind( | CODE |
| LOW | …ions/provider/deleteWithEagerPruningOfChildren.test.ts | 90 | async function entitiesMarkedForStitching(knex: Knex) { | CODE |
| LOW | …perations/provider/deleteWithEagerPruningOfChildren.ts | 29 | export async function deleteWithEagerPruningOfChildren(options: { | CODE |
| LOW | …perations/provider/deleteWithEagerPruningOfChildren.ts | 75 | async function findDescendantsThatWouldHaveBeenOrphanedByDeletion(options: { | CODE |
| LOW | …perations/provider/deleteWithEagerPruningOfChildren.ts | 229 | async function markEntitiesAffectedByDeletionForStitching(options: { | CODE |
| LOW | …e/operations/stitcher/getDeferredStitchableEntities.ts | 52 | export async function getDeferredStitchableEntities(options: { | CODE |
| LOW | …ase/operations/stitcher/markDeferredStitchCompleted.ts | 36 | export async function markDeferredStitchCompleted(option: { | CODE |
| LOW | plugins/catalog-backend/src/stitching/types.ts | 30 | export function stitchingStrategyFromConfig(config: Config): StitchingStrategy { | CODE |
| LOW | …catalog-backend/src/util/readScmEventHandlingConfig.ts | 37 | export function readScmEventHandlingConfig( | CODE |
| LOW | plugins/catalog-backend/src/util/conversion.ts | 29 | export function locationSpecToMetadataName(location: LocationSpec) { | CODE |
| LOW | plugins/catalog-backend/src/util/conversion.ts | 48 | export function locationSpecToLocationEntity(opts: { | CODE |
| LOW | …d/src/processing/evictEntitiesFromOrphanedProviders.ts | 21 | export async function getOrphanedEntityProviderNames({ | CODE |
| LOW | …d/src/processing/evictEntitiesFromOrphanedProviders.ts | 53 | async function removeEntitiesForProvider({ | CODE |
| LOW | …d/src/processing/evictEntitiesFromOrphanedProviders.ts | 79 | export async function evictEntitiesFromOrphanedProviders(options: { | CODE |
| LOW | plugins/catalog-backend/src/processing/refresh.ts | 26 | export function createRandomProcessingInterval(options: { | CODE |
| LOW | …ckend/src/processing/DefaultCatalogProcessingEngine.ts | 458 | function markSuccessfulWithNoChanges() { | CODE |
| LOW | …ckend/src/processing/DefaultCatalogProcessingEngine.ts | 474 | function markSuccessfulWithChanges() { | CODE |
| LOW | plugins/catalog-backend/src/processing/util.ts | 47 | export function getEntityOriginLocationRef(entity: Entity): string { | CODE |
| 554 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 45 | print(`CLI E2E test root: ${rootDir}\n`); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 47 | print('Building dist workspace'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 53 | print('Creating a Backstage App'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 56 | print('Creating a Backstage Plugin'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 60 | print('Creating a Backstage Backend Plugin'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 63 | print(`Running 'yarn test:e2e' in newly created app with new plugin`); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 73 | print('Testing the database backend startup'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 87 | print('Testing the Database backend startup'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 93 | print('All tests successful'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 96 | print(`All tests successful, app dir available at ${appDir}`); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 98 | print('All tests successful, removing test dir'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 174 | print(`Preparing workspace`); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 184 | print('Pinning yarn version in workspace'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 189 | print('Copying yarn patches'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 193 | print('Installing workspace dependencies'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 270 | print('Waiting for app create script to be done'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 275 | print('Overriding yarn.lock with seed file from the create-app package'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 278 | print('Rewriting module resolutions of app to use workspace packages'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 282 | print('Cleaning up node_modules in workspace'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 293 | print('Pinning yarn version and registry in app'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 300 | print('Test app created'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 310 | print(`Running 'yarn ${cmd}' in newly created app`); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 391 | print('Waiting for plugin create script to be done'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 400 | print(`Running 'yarn tsc' in root for newly created plugin`); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 404 | print(`Running 'yarn ${cmd.join(' ')}' in newly created plugin`); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 559 | print('Entities fetched successfully'); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 562 | print(''); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 563 | print(`Backend stdout:\n${stdout}`); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 565 | print(`Backend stderr:\n${stderr}`); | CODE |
| HIGH⚡ | packages/e2e-test/src/commands/runCommand.ts | 569 | print('Stopping the child process'); | CODE |
| HIGH | packages/e2e-test/src/commands/runCommand.ts | 435 | print('Dropping old DBs'); | CODE |
| HIGH | packages/e2e-test/src/commands/runCommand.ts | 442 | print('Dropped DBs'); | CODE |
| HIGH | packages/e2e-test/src/commands/runCommand.ts | 504 | print( | CODE |
| HIGH | packages/e2e-test/src/commands/runCommand.ts | 514 | print('Try to fetch entities from the backend'); | CODE |
| HIGH | packages/e2e-test/src/commands/runCommand.ts | 582 | print('Backend startup test finished successfully'); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs-ui/src/app/components/dialog/components.tsx | 44 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | docs-ui/src/app/components/dialog/components.tsx | 44 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | docs-ui/src/app/components/dialog/components.tsx | 67 | Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, | CODE |
| LOW | docs-ui/src/app/components/dialog/components.tsx | 67 | Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, | CODE |
| LOW | docs-ui/src/app/components/avatar/snippets.ts | 3 | <Avatar src="https://example.com/user.jpg" name="Jane Doe" />`; | CODE |
| LOW | …-module-cloudflare-access-provider/src/helpers.test.ts | 114 | groups: [{ id: '123', email: 'foo@bar.com', name: 'foo' }], | CODE |
| LOW | …-module-cloudflare-access-provider/src/helpers.test.ts | 197 | groups: [{ id: '123', email: 'foo@bar.com', name: 'foo' }], | CODE |
| LOW | …-module-cloudflare-access-provider/src/helpers.test.ts | 243 | groups: [{ id: '123', email: 'foo@bar.com', name: 'foo' }], | CODE |
| LOW | …-module-cloudflare-access-provider/src/helpers.test.ts | 328 | groups: [{ id: '123', email: 'foo@bar.com', name: 'foo' }], | CODE |
| LOW | …-module-cloudflare-access-provider/src/helpers.test.ts | 375 | groups: [{ id: '123', email: 'foo@bar.com', name: 'foo' }], | CODE |
| LOW | …mponents/FeaturedDocsCard/FeaturedDocsCard.stories.tsx | 32 | 'An awesome doc you want to feature to help out your customers. Lorem ipsum dolor sit amet, consectetur adipisci | CODE |
| LOW | …mponents/FeaturedDocsCard/FeaturedDocsCard.stories.tsx | 32 | 'An awesome doc you want to feature to help out your customers. Lorem ipsum dolor sit amet, consectetur adipisci | CODE |
| LOW | …kend-module-gerrit/src/actions/gerrit.examples.test.ts | 335 | gitAuthorInfo: { name: 'John Doe' }, | CODE |
| LOW | …kend-module-gerrit/src/actions/gerrit.examples.test.ts | 502 | gitAuthorInfo: { name: 'John Doe', email: 'johndoe@email.com' }, | CODE |
| LOW | …r-backend-module-gerrit/src/actions/gerrit.examples.ts | 98 | gitAuthorName: 'John Doe', | CODE |
| LOW | …r-backend-module-gerrit/src/actions/gerrit.examples.ts | 151 | gitAuthorName: 'John Doe', | CODE |
| LOW | …github/src/events/__fixtures__/push-event-complex.json | 200 | "name": "John Doe", | CODE |
| LOW | …github/src/events/__fixtures__/push-event-complex.json | 221 | "name": "John Doe", | CODE |
| LOW | …-github/src/events/__fixtures__/push-event-simple.json | 200 | "name": "John Doe", | CODE |
| LOW | …-github/src/events/__fixtures__/push-event-simple.json | 221 | "name": "John Doe", | CODE |
| LOW | …th-backend-module-pinniped-provider/src/module.test.ts | 63 | const clusterScopedIdToken = 'dummy-token'; | CODE |
| LOW | …end-module-pinniped-provider/src/authenticator.test.ts | 69 | const clusterScopedIdToken = 'dummy-token'; | CODE |
| LOW | …scaffolder-backend/src/scaffolder/tasks/logger.test.ts | 159 | const error = new Error('placeholder'); | CODE |
| LOW | …er/src/providers/BitbucketServerEntityProvider.test.ts | 1004 | token: 'fake-token', | CODE |
| LOW | plugins/org/src/alpha.test.tsx | 127 | displayName: 'John Doe', | CODE |
| LOW | plugins/org/src/alpha.test.tsx | 138 | expect(await screen.findByText('John Doe')).toBeInTheDocument(); | CODE |
| LOW | plugins/search-react/report.api.md | 155 | inputPlaceholder?: SearchBarProps['placeholder']; | CODE |
| LOW | …arch-react/src/components/SearchBar/SearchBar.test.tsx | 103 | const placeholder = 'placeholder'; | CODE |
| LOW | …c/components/SearchAutocomplete/SearchAutocomplete.tsx | 50 | inputPlaceholder?: SearchBarProps['placeholder']; | CODE |
| LOW | …lators/defaultCatalogCollatorEntityTransformer.test.ts | 45 | email: 'test@test.com', | CODE |
| LOW | plugins/scaffolder-node/src/actions/gitHelpers.test.ts | 151 | email: 'scaffolder@example.org', | CODE |
| LOW | plugins/scaffolder-node/src/actions/gitHelpers.test.ts | 166 | email: 'scaffolder@example.org', | CODE |
| LOW | plugins/scaffolder-node/src/actions/gitHelpers.test.ts | 170 | email: 'scaffolder@example.org', | CODE |
| LOW | plugins/scaffolder-node/src/actions/gitHelpers.test.ts | 316 | email: 'scaffolder@example.org', | CODE |
| LOW | plugins/scaffolder-node/src/actions/gitHelpers.test.ts | 331 | email: 'scaffolder@example.org', | CODE |
| LOW | plugins/scaffolder-node/src/actions/gitHelpers.test.ts | 335 | email: 'scaffolder@example.org', | CODE |
| LOW | plugins/scaffolder-backend-module-azure/README.md | 93 | gitAuthorName: 'John Doe' | CODE |
| LOW | …der-backend-module-azure/src/actions/azure.examples.ts | 103 | gitAuthorName: 'John Doe', | CODE |
| LOW | …e-email/src/processor/isValidNotificationEmail.test.ts | 21 | expect(isValidNotificationEmail('user@example.com')).toBe(true); | CODE |
| LOW | plugins/auth-node/src/passport/PassportHelpers.test.ts | 20 | const email = 'user@example.com'; | CODE |
| LOW | …gins/auth-node/src/flow/sendWebMessageResponse.test.ts | 50 | email: 'foo@bar.com', | CODE |
| LOW | …gins/auth-node/src/flow/sendWebMessageResponse.test.ts | 118 | email: 'foo@bar.com', | CODE |
| LOW | …gins/auth-node/src/flow/sendWebMessageResponse.test.ts | 136 | email: 'foo@bar.com', | CODE |
| LOW | …gins/auth-node/src/flow/sendWebMessageResponse.test.ts | 172 | email: 'foo@bar.com', | CODE |
| LOW | …t/src/next/components/ReviewState/ReviewState.test.tsx | 24 | name: 'John Doe', | CODE |
| LOW | …t/src/next/components/ReviewState/ReviewState.test.tsx | 38 | name: 'John Doe', | CODE |
| LOW | …t/src/next/components/ReviewState/ReviewState.test.tsx | 69 | name: 'John Doe', | CODE |
| LOW | …t/src/next/components/ReviewState/ReviewState.test.tsx | 123 | name: 'John Doe', | CODE |
| LOW | …der-react/src/next/components/Stepper/Stepper.test.tsx | 664 | 'placeholder', | CODE |
| LOW | …der-react/src/next/components/Stepper/Stepper.test.tsx | 671 | 'placeholder', | CODE |
| LOW | …src/providers/GitlabOrgDiscoveryEntityProvider.test.ts | 762 | name: 'Jane Doe', | CODE |
| LOW | …talog-backend-module-gitlab/src/__testUtils__/mocks.ts | 1082 | name: 'John Doe', | CODE |
| LOW | …talog-backend-module-gitlab/src/__testUtils__/mocks.ts | 1091 | name: 'Jane Doe', | CODE |
| LOW | …talog-backend-module-gitlab/src/__testUtils__/mocks.ts | 1585 | name: 'John Doe', | CODE |
| LOW | …talog-backend-module-gitlab/src/__testUtils__/mocks.ts | 1597 | name: 'John Doe', | CODE |
| LOW | …talog-backend-module-gitlab/src/__testUtils__/mocks.ts | 1612 | user_name: 'John Doe', | CODE |
| LOW | …talog-backend-module-gitlab/src/__testUtils__/mocks.ts | 1631 | user_name: 'John Doe', | CODE |
| LOW | …talog-backend-module-gitlab/src/__testUtils__/mocks.ts | 1650 | user_name: 'John Doe', | CODE |
| LOW | …talog-backend-module-gitlab/src/__testUtils__/mocks.ts | 2293 | displayName: 'John Doe', | CODE |
| LOW | …talog-backend-module-gitlab/src/__testUtils__/mocks.ts | 2321 | displayName: 'John Doe', | CODE |
| 129 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | plugins/techdocs-backend/CHANGELOG.md | 4224 | ##### Step 1: Change the credential keys | COMMENT |
| LOW⚡ | plugins/techdocs-backend/CHANGELOG.md | 4232 | ##### Step 2: Remove the unused keys | COMMENT |
| LOW⚡ | plugins/techdocs-backend/CHANGELOG.md | 4238 | ##### Step 3: Add Swift URL | COMMENT |
| LOW⚡ | plugins/techdocs-node/CHANGELOG.md | 3240 | ##### Step 1: Change the credential keys | COMMENT |
| LOW⚡ | plugins/techdocs-node/CHANGELOG.md | 3248 | ##### Step 2: Remove the unused keys | COMMENT |
| LOW⚡ | plugins/techdocs-node/CHANGELOG.md | 3254 | ##### Step 3: Add Swift URL | COMMENT |
| LOW | …/skills/plugin-full-frontend-system-migration/SKILL.md | 26 | ## Step 1: Migrate Route Refs | COMMENT |
| LOW | …/skills/plugin-full-frontend-system-migration/SKILL.md | 93 | ## Step 2: Migrate the Plugin Definition | COMMENT |
| LOW | …/skills/plugin-full-frontend-system-migration/SKILL.md | 143 | ## Step 3: Migrate API Factories to `ApiBlueprint` | COMMENT |
| LOW | …/skills/plugin-full-frontend-system-migration/SKILL.md | 211 | ## Step 4: Migrate Pages to `PageBlueprint` | COMMENT |
| LOW | …/skills/plugin-full-frontend-system-migration/SKILL.md | 281 | ## Step 5: Replace Internal Routing with Sub-Pages | COMMENT |
| LOW | …/skills/plugin-full-frontend-system-migration/SKILL.md | 390 | ## Step 6: Update Hooks and Imports | COMMENT |
| LOW | …/skills/plugin-full-frontend-system-migration/SKILL.md | 443 | ## Step 7: Remove Old System Code | COMMENT |
| LOW | …/skills/plugin-full-frontend-system-migration/SKILL.md | 453 | ## Step 8: Update Page Components for BUI | COMMENT |
| LOW | …/skills/plugin-full-frontend-system-migration/SKILL.md | 465 | ## Step 9: Migrate the Dev App and Tests | COMMENT |
| LOW | …/skills/plugin-full-frontend-system-migration/SKILL.md | 471 | ## Step 10: Remove the Old Wiring from the App | COMMENT |
| LOW | .agents/skills/app-frontend-system-migration/SKILL.md | 82 | ### Step 1: Switch `createApp` | COMMENT |
| LOW | .agents/skills/app-frontend-system-migration/SKILL.md | 94 | ### Step 2: Convert `createApp` options | COMMENT |
| LOW | .agents/skills/app-frontend-system-migration/SKILL.md | 129 | ### Step 3: Convert the app root | COMMENT |
| LOW | .agents/skills/app-frontend-system-migration/SKILL.md | 156 | ### Step 4: Update `index.tsx` | COMMENT |
| LOW | .agents/skills/app-frontend-system-migration/SKILL.md | 170 | ### Step 5: Update `App.test.tsx` | COMMENT |
| LOW | …nts/skills/plugin-new-frontend-system-support/SKILL.md | 21 | ## Step 1: Create the Alpha Entry Point | COMMENT |
| LOW | …nts/skills/plugin-new-frontend-system-support/SKILL.md | 62 | ## Step 2: Update `package.json` Exports | COMMENT |
| LOW | …nts/skills/plugin-new-frontend-system-support/SKILL.md | 90 | ## Step 3: Implement the Dual Header Pattern | COMMENT |
| LOW | …nts/skills/plugin-new-frontend-system-support/SKILL.md | 267 | ## Step 4: Migrate APIs to `ApiBlueprint` | COMMENT |
| LOW | …nts/skills/plugin-new-frontend-system-support/SKILL.md | 321 | ## Step 5: Route Refs | COMMENT |
| LOW | …nts/skills/plugin-new-frontend-system-support/SKILL.md | 372 | ## Step 6: Translations | COMMENT |
| LOW⚡ | docs/features/techdocs/using-cloud-storage.md | 561 | ##### Step 1: Change the credential keys | COMMENT |
| LOW⚡ | docs/features/techdocs/using-cloud-storage.md | 569 | ##### Step 2: Remove the unused keys | COMMENT |
| LOW⚡ | docs/features/techdocs/using-cloud-storage.md | 575 | ##### Step 3: Add Swift URL | COMMENT |
| LOW | docs/tutorials/package-role-migration.md | 48 | ### Step 1 - Add package roles | COMMENT |
| LOW | docs/tutorials/package-role-migration.md | 60 | ### Step 2 - Migrate package scripts | COMMENT |
| LOW | docs/tutorials/package-role-migration.md | 86 | ### Step 3 - Migrate package ESLint configurations | COMMENT |
| LOW | docs/tutorials/package-role-migration.md | 98 | ### Step 4 - Use `backstage-cli repo` | COMMENT |
| LOW | docs/tutorials/react-router-stable-migration.md | 25 | ### Step 1 - Upgrade to Backstage 1.6 | COMMENT |
| LOW | docs/tutorials/react-router-stable-migration.md | 29 | ### Step 2 - Move `react-router` to `peerDependencies` | COMMENT |
| LOW | docs/tutorials/react-router-stable-migration.md | 61 | ### Step 3 - Ensure that your external plugins are updated | COMMENT |
| LOW | docs/tutorials/react-router-stable-migration.md | 67 | ### Step 4 - Bump the React Router dependencies in your app | COMMENT |
| LOW | docs/tutorials/react-router-stable-migration.md | 92 | ### Step 5 - Breaking Changes | COMMENT |
| LOW | …es/catalog-model/src/model/compileCatalogModel.test.ts | 342 | // Step 1: Add one of everything | COMMENT |
| LOW | …es/catalog-model/src/model/compileCatalogModel.test.ts | 542 | // Step 2: Update everything | COMMENT |
| LOW | …es/catalog-model/src/model/compileCatalogModel.test.ts | 718 | // Step 3: Remove things | COMMENT |
| LOW | …es/catalog-model/src/model/compileCatalogModel.test.ts | 842 | // Step 4: Remove the kind entirely | COMMENT |
| LOW | …ntend-plugin-api/src/routing/describeParentCallSite.ts | 19 | // NOTE: This function is also imported and used in backend code | COMMENT |
| LOW | …d-defaults/src/entrypoints/database/DatabaseManager.ts | 243 | // NOTE: This class looks odd but is kept around for API compatibility reasons | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app-config.yaml | 241 | # - entity-content:azure-devops/git-tags | COMMENT |
| LOW | app-config.yaml | 321 | # apiBaseUrl: https://ghe.example.net/api/v3 | COMMENT |
| LOW | app-config.yaml | 341 | # username: ${BITBUCKET_SERVER_USERNAME} | COMMENT |
| LOW | app-config.yaml | 381 | containerName: ${CONTAINER_NAME} | COMMENT |
| LOW | app-config.yaml | 441 | ### Add auth.keyStore.provider to more granularly control how to store JWK data when running | COMMENT |
| LOW | …folder/src/components/fields/RepoOwnerPicker/schema.ts | 81 | COMMENT | |
| LOW | …perations/provider/deleteWithEagerPruningOfChildren.ts | 81 | COMMENT | |
| LOW | …perations/provider/deleteWithEagerPruningOfChildren.ts | 121 | ), | COMMENT |
| LOW | …perations/provider/deleteWithEagerPruningOfChildren.ts | 181 | // targeted for deletion) that has references down through the tree to | COMMENT |
| LOW | …d/src/database/operations/stitcher/performStitching.ts | 201 | } | COMMENT |
| LOW | …/src/database/operations/stitcher/buildEntitySearch.ts | 41 | type Kv = { | COMMENT |
| LOW | …/src/database/operations/stitcher/buildEntitySearch.ts | 61 | // will result in | COMMENT |
| LOW | …/src/database/operations/stitcher/buildEntitySearch.ts | 101 | // array | COMMENT |
| LOW | …end/src/database/operations/stitcher/syncSearchRows.ts | 141 | // MySQL: temporary table merge | COMMENT |
| LOW | …ckend/src/processing/DefaultCatalogProcessingEngine.ts | 241 | } | COMMENT |
| LOW | …-module-github/src/events/analyzeGithubWebhookEvent.ts | 621 | // no mention of the OLD_OWNER anywhere in the event payload) | COMMENT |
| LOW | …module-google-pubsub/src/util/createPatternResolver.ts | 81 | // The result of the split contains pairs (with maybe no last element): | COMMENT |
| LOW | …-backend/sample-templates/bitbucket-demo/template.yaml | 21 | allowedHosts: | COMMENT |
| LOW | plugins/catalog-backend-module-ldap/src/ldap/config.ts | 101 | // The name of the attribute that shall be used for the value of the | COMMENT |
| LOW | plugins/catalog-backend-module-ldap/src/ldap/config.ts | 141 | // The name of the attribute that shall be used for the value of the | COMMENT |
| LOW | plugins/notifications-backend-module-email/README.md | 61 | # accessKeyId: 'my-access-key | COMMENT |
| LOW | plugins/notifications-backend-module-email/README.md | 81 | receiver: 'users' | COMMENT |
| LOW | …auth-backend/examples/docker-compose.oauth2-proxy.yaml | 1 | #!/usr/bin/env docker-compose -f | COMMENT |
| LOW | plugins/connections-example-backend/dev/index.ts | 21 | // | COMMENT |
| LOW | plugins/auth-node/src/flow/sendWebMessageResponse.ts | 61 | // be sure that the js code below does not allow the injection of malicious | COMMENT |
| LOW | plugins/catalog-import/report.api.md | 461 | // Warnings were encountered during analysis: | COMMENT |
| LOW | …s/search-backend/src/service/AuthorizedSearchEngine.ts | 161 | previousPageCursor: undefined, | COMMENT |
| LOW | …gins/bitbucket-cloud-common/scripts/generate-models.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | plugins/api-docs/README-alpha.md | 301 | ###### Disable | COMMENT |
| LOW | plugins/api-docs/README-alpha.md | 381 | This card is disabled by default when you install the `api-docs` plugin, but to ensure the card will always be disabled | COMMENT |
| LOW | plugins/api-docs/README-alpha.md | 461 | ```yaml | COMMENT |
| LOW | plugins/api-docs/README-alpha.md | 701 | COMMENT | |
| LOW | plugins/api-docs/README-alpha.md | 781 | | `entity-content` | `api-docs` | `apis` | `entity-content:api-docs/apis` | | COMMENT |
| LOW | plugins/catalog-backend-module-msgraph/README.md | 41 | # for querying. Certain features are limited to advanced querying capabilities. | COMMENT |
| LOW | plugins/catalog-backend-module-msgraph/README.md | 61 | select: ['id', 'displayName', 'description'] | COMMENT |
| LOW | plugins/catalog-backend-module-msgraph/README.md | 81 | # Can be combined with userGroupMember[...] instead of userFilter. | COMMENT |
| LOW | .storybook/main.ts | 61 | // When upgrading from Storybook 8 to 9 with the react-vite framework, | COMMENT |
| LOW | docs/releases/v1.49.0-changelog.md | 361 | const paths = findPaths(__dirname); | COMMENT |
| LOW | docs/backend-system/core-services/root-http-router.md | 61 | # - A standard ISO formatted duration string, e.g. 'P2DT6H' or 'PT1M'. | COMMENT |
| LOW | docs/auth/identity-resolver.md | 321 | }, | COMMENT |
| LOW | docs/integrations/ldap/org.md | 281 | # The name of the attribute that shall be used for the value of | COMMENT |
| LOW | docs/integrations/ldap/org--old.md | 201 | COMMENT | |
| LOW | docs/integrations/ldap/org--old.md | 301 | type: groupType | COMMENT |
| LOW | docs/ai/mcp-actions.md | 221 | # allowedClientIdPatterns: | COMMENT |
| LOW | contrib/docs/tutorials/flightcontrol-deployment.md | 121 | require: true | COMMENT |
| LOW | …sic_kubernetes_example_with_helm/backstage/values.yaml | 81 | podSecurityContext: | COMMENT |
| LOW | packages/ui/src/navigation/BUIRoutingProvider.tsx | 21 | useHref, | COMMENT |
| LOW | …mplates/backend-plugin/src/services/TodoListService.ts | 81 | // Cross-plugin communication uses service-to-service authentication. The | COMMENT |
| LOW | packages/techdocs-cli/scripts/prepack.sh | 1 | #!/bin/bash | COMMENT |
| LOW | packages/yarn-plugin/src/util/getPackageVersion.ts | 61 | // don't need to explicitly memoize the fetch. | COMMENT |
| LOW | …mic-feature-service/src/loader/CommonJSModuleLoader.ts | 101 | previousSearchPaths.set(searchPaths, filtered); | COMMENT |
| LOW | packages/backend/prometheus.yml | 1 | # This is an example configuration file for Prometheus, that is set to scrape | COMMENT |
| LOW | packages/cli/asset-types/asset-types.d.ts | 121 | } | COMMENT |
| LOW | packages/cli/asset-types/asset-types.js | 1 | // NOOP, this is just here to unbreak module resolution | COMMENT |
| LOW | …s/frontend-app-api/src/tree/readAppExtensionsConfig.ts | 121 | COMMENT | |
| LOW | packages/frontend-app-api/src/routing/RouteResolver.ts | 121 | // to the diff list, which ends up being the list of route refs to traverse form the common base | COMMENT |
| LOW | packages/core-components/report.api.md | 801 | // Warning: (ae-missing-release-tag) "Lifecycle" is part of the package's API, but it is missing a release tag (@alpha, | COMMENT |
| LOW | packages/core-components/report.api.md | 901 | // Warning: (ae-missing-release-tag) "MarkdownContentClassKey" is part of the package's API, but it is missing a release | COMMENT |
| LOW | packages/core-components/report.api.md | 921 | // Warning: (ae-missing-release-tag) "MetadataTableTitleCellClassKey" is part of the package's API, but it is missing a | COMMENT |
| LOW | packages/core-components/report.api.md | 961 | export type OpenedDropdownClassKey = 'icon'; | COMMENT |
| 5 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | contrib/terraform/techdocs-s3-storage/terraform.tf | 1 | #========================== | COMMENT |
| MEDIUM | contrib/terraform/techdocs-s3-storage/terraform.tf | 3 | #========================== | COMMENT |
| MEDIUM | contrib/terraform/techdocs-s3-storage/terraform.tf | 17 | #========================== | COMMENT |
| MEDIUM | contrib/terraform/techdocs-s3-storage/terraform.tf | 19 | #========================== | COMMENT |
| MEDIUM | contrib/terraform/techdocs-s3-storage/terraform.tf | 54 | #========================== | COMMENT |
| MEDIUM | contrib/terraform/techdocs-s3-storage/terraform.tf | 56 | #========================== | COMMENT |
| MEDIUM | …li-module-build/src/commands/package/bundle/command.ts | 187 | // ── Step 0 (frontend only): Module federation build ───────────────── | COMMENT |
| MEDIUM | …li-module-build/src/commands/package/bundle/command.ts | 223 | // ── Step 1: Populate embedded packages ────────────────────────────── | COMMENT |
| MEDIUM | …li-module-build/src/commands/package/bundle/command.ts | 228 | // ── Strategy A: Copy from pre-built dist workspace ─────────────── | COMMENT |
| MEDIUM | …li-module-build/src/commands/package/bundle/command.ts | 259 | // ── Strategy B: createDistWorkspace ────────────────────────────── | COMMENT |
| MEDIUM | …li-module-build/src/commands/package/bundle/command.ts | 314 | // ── Step 2: Assemble embedded packages ────────────────────────────── | COMMENT |
| MEDIUM | …li-module-build/src/commands/package/bundle/command.ts | 372 | // ── Step 1b: Pack main plugin only ────────────────────────────────── | COMMENT |
| MEDIUM | …li-module-build/src/commands/package/bundle/command.ts | 424 | // ── Step 3: Config schema ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …li-module-build/src/commands/package/bundle/command.ts | 465 | // ── Step 4: Post-process package.json ──────────────────────────────── | COMMENT |
| MEDIUM | …li-module-build/src/commands/package/bundle/command.ts | 490 | // ── Step 5: Seed lockfile, prune, & install ────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app-config.yaml | 397 | # For local development you can use a file location instead: | COMMENT |
| MEDIUM | plugins/techdocs-module-addons-contrib/src/plugin.ts | 43 | * Here's a simple example: | COMMENT |
| MEDIUM | plugins/techdocs-module-addons-contrib/src/plugin.ts | 90 | * Here's a simple example: | COMMENT |
| MEDIUM | plugins/techdocs-module-addons-contrib/src/plugin.ts | 169 | * Here's a simple example: | COMMENT |
| MEDIUM | plugins/techdocs-module-addons-contrib/src/plugin.ts | 217 | * Here's a simple example: | COMMENT |
| MEDIUM | …mePageComponents/HeaderWorldClock/HeaderWorldClock.tsx | 27 | * Here's a simple example: | COMMENT |
| MEDIUM | …p/templates/legacy-app/examples/template/template.yaml | 51 | # you can change that here. | COMMENT |
| MEDIUM | …/templates/default-app/examples/template/template.yaml | 51 | # you can change that here. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plugins/devtools-backend/src/util/Lockfile.ts | 54 | `# This file is generated by running "yarn install" inside your project.\n`, | CODE |
| MEDIUM | packages/cli-node/src/monorepo/Lockfile.test.ts | 25 | const MODERN_HEADER = `# This file is generated by running "yarn install" inside your project. | CODE |
| MEDIUM | packages/cli-node/src/monorepo/Lockfile.ts | 26 | `# This file is generated by running "yarn install" inside your project.\n`, | CODE |
| MEDIUM | …package-manager-yarn/src/lib/verifyYarnPatches.test.ts | 26 | const LOCKFILE_HEADER = `# This file is generated by running "yarn install" inside your project. | CODE |
| MEDIUM | …le-package-manager-yarn/src/lib/fixYarnPatches.test.ts | 25 | const LOCKFILE_HEADER = `# This file is generated by running "yarn install" inside your project. | CODE |
| MEDIUM | .github/ISSUE_TEMPLATE/.common.yaml | 1 | # This file contains common fields for all issue templates | COMMENT |
| MEDIUM | .github/ISSUE_TEMPLATE/01_bug.yaml | 40 | ## Defining the bug | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | microsite/data/plugins/harness-iacm.yaml | 7 | documentation: https://github.com/harness/backstage-plugins/tree/main/plugins/harness-iacm#harness-iacm-plugin | CODE |
| MEDIUM | packages/config-loader/src/schema/filtering.ts | 178 | // We don't use this method for all the errors as the data path is more robust | COMMENT |
| MEDIUM | packages/yarn-plugin/src/util/getPackageVersion.ts | 60 | // 1. This means that the fetch should leverage yarn's built-in cache, so we | COMMENT |
| MEDIUM | …repo-tools/src/commands/package/schema/openapi/fuzz.ts | 61 | // TODO: @sennyeya This should leverage the `guest-provider` if available. | COMMENT |
| MEDIUM | …aults/src/entrypoints/urlReader/lib/GithubUrlReader.ts | 315 | // For larger repos, we leverage readTree and filter through that instead | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ADOPTERS.md | 39 | | [FactSet](https://www.factset.com/) | [@kuangp](https://github.com/kuangp) | CODE |
| MEDIUM | ADOPTERS.md | 103 | | [TUI Group](https://www.tuigroup.com/) | [Simon Stamm](https://github.com/simonst | CODE |
| MEDIUM | ADOPTERS.md | 295 | | [OpenChoreo](https://openchoreo.dev/) | [@sameerajayasoma](https://github.com/sameerajayasoma), [@lakwarus](https://gi | CODE |
| MEDIUM | plugins/scaffolder/CHANGELOG.md | 7165 | - a5f42cf66: # Stateless scaffolding | CODE |
| MEDIUM | plugins/scaffolder-backend/CHANGELOG.md | 8168 | - a5f42cf66: # Stateless scaffolding | CODE |
| MEDIUM | plugins/scaffolder-node/src/scaffolderService.ts | 154 | return this.#client.scaffold(request, await this.#getOptions(options)); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …es/catalog-model/src/model/compileCatalogModel.test.ts | 342 | // Step 1: Add one of everything | COMMENT |
| LOW | …es/catalog-model/src/model/compileCatalogModel.test.ts | 542 | // Step 2: Update everything | COMMENT |
| LOW | …es/catalog-model/src/model/compileCatalogModel.test.ts | 718 | // Step 3: Remove things | COMMENT |
| LOW | …es/catalog-model/src/model/compileCatalogModel.test.ts | 842 | // Step 4: Remove the kind entirely | COMMENT |
| LOW | …ckend-openapi-utils/src/schema/parameter-validation.ts | 212 | // Since getAll will return an empty array if the key is not found, we need to check if the key exists first. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/backend-openapi-utils/src/stub.ts | 72 | // TODO: Handle errors by converting from OpenApiValidator errors to known @backstage/errors errors. | COMMENT |