Extract entityPresentationSnapshot helper to eliminate unsafe `as Entity`
casts when passing CompoundEntityRef to EntityPresentationApi.forEntity(),
which only accepts Entity | string. The helper safely discriminates input
types and stringifies CompoundEntityRef before calling the API.
- Add entityPresentationSnapshot as a public export from catalog-react
- Remove duplicated getEntityTitle/getTitle helpers across 5 files
- Fix useAsync dependency array in TemplateFormPreviewer
- Update TSDoc across all presentation API surfaces to reference the
new helper
- Update entity-presentation.md docs with usage guidance and migration
table
Made-with: Cursor
Signed-off-by: Marat Dyatko <maratd@spotify.com>
Prefix the frontmatter `id` in the --old variants with their
feature area (techdocs-/search-) so Docusaurus no longer reports
duplicate doc ID collisions.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Update links to removed how-to-guides anchors (#how-to-index-techdocs-documents
and #how-to-limit-what-can-be-searched-in-the-software-catalog) to point to the
existing #how-to-customize-fields-in-the-software-catalog-or-techdocs-index
anchor instead. Also update the old frontend system guide to link to the
--old variants of how-to-guides.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Replace `Promise.resolve(...)` with `async` functions in scaffolder
FormFieldBlueprint.make examples, and switch the TechDocs custom home
page example to use the `plugin.withOverrides` pattern instead of
`createFrontendModule`.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Fix ~30 broken links and anchors across the documentation site, including
incorrect relative paths, mismatched anchor names, zero-width characters
in URLs, and references to renamed or removed headings.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Fix links in viewing-catalog.md and filter-catalog.md to point to
the new frontend system catalog-customization.md instead of the old
guide. Fix the Kubernetes entity content extension ID to use the
correct `entity-content:kubernetes/kubernetes` format. Wrap raw
extension definitions in `createFrontendModule` in search and
scaffolder docs. Correct TechDocs addon installation instructions
to explicitly install addon modules rather than claiming
auto-discovery.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Expand the TechDocs home page customization section with concrete examples
showing how to override the page:techdocs extension using a frontend module.
Replace the incorrect scaffolder custom step layouts guide with a note that
this feature is not yet supported in the new frontend system.
Restore missing catalog customization docs for columns, actions, table
options, removing filters, and fully custom catalog pages to ensure parity
with the old frontend system guide.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Rewrite documentation for TechDocs, Software Templates, Software Catalog,
Search, and Kubernetes features to use the new frontend system as the
primary installation and configuration instructions. Old frontend system
instructions are moved to separate `--old` suffixed files for pages with
substantial legacy content, or updated inline for pages with minimal
old-system content.
Files migrated:
- techdocs/getting-started.md
- techdocs/how-to-guides.md
- software-templates/writing-custom-step-layouts.md
- software-templates/writing-custom-field-extensions.md
- software-templates/index.md
- software-catalog/catalog-customization.md
- search/getting-started.md
- search/how-to-guides.md
- kubernetes/installation.md
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
- Consolidate changesets: one for catalog-react (deprecation), one combined
for the remaining 5 plugins
- Add entity-presentation to microsite/sidebars.ts
- Update @deprecated tags to point to useEntityPresentation /
entityPresentationApiRef only, not defaultEntityPresentation
- Use entityPresentationApiRef with .promise in async loaders
(StepPrepareCreatePullRequest, TemplateFormPreviewer)
- Add optional entityPresentation?: EntityPresentationApi param to sync
column factories and use .snapshot when available
(columnFactories, EntityTable/columns, EntityOwnerPicker, CatalogTable)
- Rewrite entity-presentation.md to recommend .snapshot/.promise instead
of defaultEntityPresentation
- Update TSDoc on entityPresentationApiRef, EntityPresentationApi,
defaultEntityPresentation, useEntityPresentation, EntityDisplayName
- Re-export presentation API types from alpha entry point
- Update API reports
- Fix test mocks for entityPresentationApiRef
Made-with: Cursor
Signed-off-by: Marat Dyatko <maratd@spotify.com>
Made-with: Cursor
Migrate all humanizeEntityRef and humanizeEntity usages to the Catalog
Presentation API across catalog, catalog-react, org-react,
catalog-import, scaffolder, and techdocs plugins.
- Use useEntityPresentation hook in React component contexts
(AncestryPage)
- Use defaultEntityPresentation for non-React contexts like sort
comparators, filter functions, and data mappers
- Add @deprecated tags to humanizeEntityRef and humanizeEntity
- Improve TSDoc on entityPresentationApiRef, EntityPresentationApi,
useEntityPresentation, EntityDisplayName, and
defaultEntityPresentation with guidance on which to use when
- Add Entity Presentation docs page with usage examples and migration
guide
Made-with: Cursor
Signed-off-by: Marat Dyatko <maratd@spotify.com>
All Node.js versions in Backstage's support matrix (v22 and v24 LTS)
include built-in proxy support via NODE_USE_ENV_PROXY, making the
legacy global-agent/undici workarounds unnecessary. Remove the legacy
proxy guide from contrib/ and all references to the legacy approach
across the docs.
Signed-off-by: Jon Koops <jonkoops@gmail.com>
Node.js 22.21.0+ natively supports HTTP_PROXY, HTTPS_PROXY, and
NO_PROXY environment variables via NODE_USE_ENV_PROXY, eliminating the
need for undici and global-agent workarounds. This also works with
node-fetch and cross-fetch since they delegate to node:http/node:https
without overriding the HTTP agent.
Add a new corporate proxy tutorial under docs/ with the recommended
approach and update the legacy guide in contrib/ to point to it.
Update proxy references in the deployment, keeping-backstage-updated,
and TechDocs CLI docs to mention NODE_USE_ENV_PROXY.
Signed-off-by: Jon Koops <jonkoops@gmail.com>
The `spec.owner` relation tables for all entity kinds incorrectly listed
`ownerOf` as the generated relation with `ownedBy` as the reverse. The
entity emitting the relation is owned by the target, so the outgoing
relation is `ownedBy` and the reverse is `ownerOf`.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
Add documentation for the new group aliases and contentOrder options
to the catalog customization guide.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Corrected capitalization of 'A Resource' at the beginning of the sentence (as it is a proper noun)
Signed-off-by: Rinke Hoekstra <RinkeHoekstra@users.noreply.github.com>