10 CBA questions with full explanations for every option, free to view on this page.
Customizing Backstage
Q1. A production Backstage deployment has different auth, integration, database, and plugin settings per environment. What does app-config.yaml control?
Reveal answer and explanations
AReact component rendering logic compiled into the frontend bundle
Incorrect. Component rendering logic lives in application and plugin code.
BTypeScript compiler settings for each workspace package
Incorrect. TypeScript compiler settings are defined in tsconfig files.
CRuntime feature, auth, database, and integration config
Correct. Backstage configuration files supply runtime settings for installed features, auth providers, integrations, and services.
DDatabase schema definitions generated by plugin migrations
Incorrect. Plugin database schemas are managed by backend code and migrations, not by app-config.yaml.
Customizing Backstage
Q2. What is the relationship between entity pages, entity layout components, and the Backstage routing system?
Reveal answer and explanations
AEntity pages are routes that use entity layout components to organize content; routing is handled by the core framework
Correct. Custom entity pages use layout components to structure the UI; the framework handles routing based on entity type.
BThe routing system dynamically generates entity pages from entity layout components defined in each plugin
Incorrect. While plugins can contribute layout components, the framework generates the routes.
CEntity layout components are independent routes that manage their own navigation
Incorrect. Layout components are not independent routes; they're nested within entity pages.
DEntity pages are static HTML files generated at build time; components are loaded dynamically
Incorrect. Entity pages are dynamically rendered, not static.
Customizing Backstage
Q3. When creating a custom plugin API to share functionality between plugins, which pattern does Backstage recommend?
Reveal answer and explanations
AUsing React Context to expose API implementations
Incorrect. React Context can be used but doesn't follow Backstage's API registration pattern.
BStoring shared functions in the backend database
Incorrect. Storing functions in the database is inefficient and not part of plugin architecture.
CCreating shared utility functions in a common package
Incorrect. While utility functions are useful, they don't provide the plugin isolation and dependency management of the API registry.
DDefining an API interface and registering it with the API registry
Correct. Backstage's API registry pattern allows you to define typed APIs and inject them into plugins, providing proper dependency management and isolation.
Customizing Backstage
Q4. In a proxy backend plugin, what is the primary security concern when proxying requests to external services?
Reveal answer and explanations
AThe proxy must rate-limit requests to prevent DDoS attacks on the external service
Incorrect. Rate limiting is a concern, but the primary security issue is credential management.
BThe proxy must ensure credentials for the external service are not leaked through request headers or logs
Correct. Proxy plugins must carefully manage backend credentials, ensuring they are not exposed through client-side headers or logging.
CThe proxy must compress all responses to prevent network sniffing
Incorrect. Compression is a transport optimization, not a security measure against credential leakage.
DThe proxy must validate that the external service's SSL certificate is valid
Incorrect. While certificate validation is important, it's standard HTTPS behavior.
Customizing Backstage
Q5. A team wants to replace one default Backstage page but still upgrade the upstream plugin later. Why use a component override instead of editing plugin source?
Reveal answer and explanations
ATo manage npm dependency versions across the monorepo
Incorrect. Dependency versions are managed by package manifests and the workspace tooling.
BTo change deployment-time environment variables
Incorrect. Deployment-time values belong in Backstage configuration or environment variables.
CTo make the production bundle smaller automatically
Incorrect. Overrides are about behavior and presentation, not automatic bundle optimization.
DReplace default UI with app-owned behavior
Correct. Overrides let the app replace or decorate default UI behavior without patching the plugin package itself.
Customizing Backstage
Q6. When implementing a custom plugin extension point, what is the primary mechanism that allows third-party plugins to discover and interact with your extension without tight coupling?
Reveal answer and explanations
AImplementing the extension through the shared routes or search routes system with discoverable identifiers
Correct. Using shared routes or search routes with consistent identifiers allows loose coupling and discovery of extensions by other plugins.
BDefining the extension in a YAML file in the app-config and dynamically loading it
Incorrect. YAML-based dynamic loading isn't how Backstage handles extension point discovery.
CRegistering the extension in the plugin's index.ts file with hardcoded import paths
Incorrect. Hardcoded imports defeat the purpose of plugin extensibility and create tight coupling.
DUsing a shared npm package that exports the extension configuration object
Incorrect. While shared packages can work, they create tight coupling and don't enable true plugin discovery.
Customizing Backstage
Q7. A team is packaging a custom page as a Backstage frontend plugin for the new frontend system. Which API creates the plugin instance?
Reveal answer and explanations
AcreateFrontendPlugin
Correct. The new frontend system uses this factory to create a plugin instance with a plugin ID and extension definitions, avoiding a custom class hierarchy.
BCustomPluginInterface
Incorrect. Backstage documentation describes a factory function for plugin instances; this name is just a distractor and would not give the app an installable plugin feature.
CBackstagePluginClass
Incorrect. A made-up class name would not integrate with the documented frontend feature installation flow or the extension tree used by Backstage apps.
DcreateBackendPlugin
Incorrect. That factory belongs to server-side extension points and does not create an installable browser feature for the frontend system.
Customizing Backstage
Q8. When creating a custom sidebar navigation item using createComponentExtension, which of the following scenarios would require additional configuration beyond the basic plugin setup?
Reveal answer and explanations
AAdding a static navigation item that always appears at the bottom of the sidebar
Incorrect. Static items with positioning are straightforward configurations of createComponentExtension.
BAdding a navigation item with a custom color
Incorrect. Colors are handled through standard theming, not special configuration.
CAdding a navigation item with an icon that only appears for users with specific permissions
Correct. Permission-based visibility requires integration with Backstage's permission framework and custom logic beyond the basic extension.
DAdding a navigation item that links to an external URL
Incorrect. External URL links are directly supported by navigation extensions.
Customizing Backstage
Q9. A company needs branded colors and typography without patching CSS or node_modules. Which supported Backstage API should create the app theme?
Reveal answer and explanations
AReplace Material UI entirely with a different component library
Incorrect. Backstage theming is designed to work through the Backstage and Material UI theme APIs.
BOverride global CSS with !important rules in index.css
Incorrect. Global CSS overrides are brittle and bypass the supported theme model.
These questions are written against the current CBA curriculum — not scraped exam dumps. The full CBA library here has 120 questions; the broader platform covers the rest of the Golden Kubestronaut path.