Use when building a catalog backend module that ingests entities from an external source (e.g. Azure DevOps, internal API, JSON file). Covers both the normal EntityProvider and the IncrementalEntityProvider for large-volume sources, plus module wiring via catalogProcessingExtensionPoint or…
Use when adding a card to a catalog entity's overview tab or a whole tab/page to a catalog entity page. Covers EntityCardBlueprint (overview-page cards) and EntityContentBlueprint (full tabs), entity filtering by kind/type/annotation, and access to the current entity via useEntity. Triggers on phrases like "card on…
Use when authoring a Backstage frontend plugin that wants to expose its OWN extension point — a typed "blueprint" that other plugins or modules can call to contribute to your plugin's UI. Covers createExtensionBlueprint (defining the blueprint), the parent extension that collects contributions via inputs, factory…
Use when the user wants to create any new Backstage package — plugin, module, processor, provider, scaffolder action, or library. Drives yarn new to scaffold the right template and optionally pre-wires common patterns (catalog access, identity, etc.) based on user intent. Triggers on phrases like "create a new…
Use when building a custom scaffolder template action — a step that scaffolder templates can call from their YAML steps. Covers createTemplateAction with Zod input/output schemas, the action handler context (logger, workspacePath, input, output, etc.), and module wiring via scaffolderActionsExtensionPoint. Triggers on…
Use when building a custom scaffolder form field — a React component that scaffolder template forms can use via ui:field: . Covers FormFieldBlueprint, createFormField, the field component props (formData, onChange, schema, rawErrors, etc.), Zod-based field schema via makeFieldSchema, optional validation, and…
Use when a Backstage backend plugin or module needs a core service — logger, config, http router, database, scheduler, lifecycle, cache, urlReader, discovery, auth, httpAuth, or userInfo. Triggers on imports of coreServices. refs from @backstage/backend-plugin-api or any deps map in a plugin/module register block.
Use when defining or authoring a Backstage backend plugin or module. Covers createBackendPlugin and createBackendModule from @backstage/backend-plugin-api, service registration via coreServices. refs, and exposing extension points with createExtensionPoint. Triggers on imports from @backstage/backend-plugin-api or…
Use when a Backstage plugin needs to interact with the catalog — fetching one entity by ref, querying entities with filters, or registering/unregistering catalog locations. Triggers on imports of catalogApiRef from @backstage/plugin-catalog-react, or @backstage/catalog-client in backend code.
Use when defining or authoring extensions for a Backstage frontend plugin in the new frontend system. Covers createFrontendPlugin, route refs from @backstage/frontend-plugin-api, ApiBlueprint, PageBlueprint, SubPageBlueprint, and hook usage. Triggers on imports from @backstage/frontend-plugin-api or when writing…
Use when a Backstage frontend plugin needs information about the currently logged-in user — their entity ref, profile info, ownership refs, or auth token. Triggers on phrases like "current user", "logged-in user", "my groups", or imports of identityApiRef.
Use when a Backstage plugin needs to gate UI behind permissions (frontend) or authorize actions in route handlers (backend). Covers createPermission, the usePermission hook and RequirePermission component, the coreServices.permissions service for backend authorization, and resource permissions for per-instance checks.…
Use when authoring UI for a Backstage frontend plugin. Covers the @backstage/ui (BUI) component library — layout, typography, forms, dialogs, menus, tables — plus styling via CSS modules with BUI design tokens, and Remix Icons. Triggers on imports of @backstage/ui or when creating any frontend component.