Commit Graph

1944 Commits

Author SHA1 Message Date
Ben Lambert f0f6823a66 docs(scaffolder): update form decorators docs for promoted API (#34181)
* docs(scaffolder): update form decorators docs for promoted API

Signed-off-by: benjdlambert <ben@blam.sh>

* docs(scaffolder): address review feedback on form decorators docs

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-19 14:24:58 +02:00
Ben Lambert d09c21cb84 feat(scaffolder): config-driven template groups and swappable TemplateCard (#34147)
* feat(scaffolder): config-driven template groups and swappable TemplateCard

Signed-off-by: benjdlambert <ben@blam.sh>

* refactor(scaffolder): keep createGroupsWithOther internal

Signed-off-by: benjdlambert <ben@blam.sh>

* docs(scaffolder): fix sub-page extension ID in changeset

Signed-off-by: benjdlambert <ben@blam.sh>

* address PR review feedback

Signed-off-by: benjdlambert <ben@blam.sh>

* split TemplateCard swappable contract from legacy props

Signed-off-by: benjdlambert <ben@blam.sh>

* address review feedback: dedupe tags, defensive groups copy, doc clarifications

Signed-off-by: benjdlambert <ben@blam.sh>

* regenerate api reports

Signed-off-by: benjdlambert <ben@blam.sh>

* align docs and changeset with actual default group titles

Signed-off-by: benjdlambert <ben@blam.sh>

* regen api reports after rebase

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: benjdlambert <ben@blam.sh>
2026-05-12 12:29:44 +02:00
Andre Wanlin 3e4d49db23 Merge pull request #34060 from raphaeltorquat0/fix/issue-32925
docs(techdocs): fix incorrect S3 permission in AWS configuration
2026-05-08 14:07:57 -05:00
Eva Gustavsson 41b65b190e fix: Correct faulty link to techdocs-cli (#34091)
The link to Github repository of techdocs-cli was
faulty. This commit corrects the link in the
documentation.

Signed-off-by: evhnn29 <eva.gustavsson@t-online.de>
2026-05-08 10:22:56 -04:00
Andre Wanlin 2f33a9f63f Fixes for non-breaking typos and typos configuration
Signed-off-by: Andre Wanlin <awanlin@spotify.com>

More

Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-04-29 16:54:05 -05:00
Andre Wanlin 84913005fd Merge pull request #31838 from karthikjeeyar/mkdocs-patch
feat(techdocs): add app-config option to disable external font download
2026-04-29 12:47:12 -05:00
Karthik 610b42f72f update documentation and improve types
Signed-off-by: Karthik <karthik.jk11@gmail.com>
2026-04-29 00:19:03 +05:30
Ferin Patel 07e08beac1 feat: Add status check functions for scaffolder steps (#32890)
* feat: Add status check functions for scaffolder steps

- Introduced `always()` and `failure()` functions to control step execution after failures.
- Updated documentation to explain usage of new status check functions.
- Enhanced NunjucksWorkflowRunner to process these functions in step conditions.
- Added tests to verify behavior of steps using `always()` and `failure()`.

Signed-off-by: ferin79 <ferinpatel79@gmail.com>

* feat: Enhance status check functions in scaffolder steps

- Updated documentation to clarify usage of status check functions with template expressions.
- Modified tests to reflect changes in syntax for status checks.
- Refactored NunjucksWorkflowRunner to ensure proper handling of status check functions in step conditions.

Signed-off-by: ferin79 <ferinpatel79@gmail.com>

* docs: Clarify usage of status check functions in writing templates

- Removed redundant explanation about truthy conditions after step failure.
- Streamlined the description for better clarity on status check functions.

Signed-off-by: ferin79 <ferinpatel79@gmail.com>

---------

Signed-off-by: ferin79 <ferinpatel79@gmail.com>
2026-04-28 11:16:59 +02:00
Raphael Torquato 096be8b8ea docs(techdocs): fix incorrect S3 permission in AWS configuration
Changed s3:PutBucketAcl to s3:PutObjectAcl in the migration permissions
section, as PutObjectAcl is the correct permission for copying objects.

Fixes #32925

Signed-off-by: Raphael Torquato <raphael.martini@live.com>
2026-04-25 21:13:09 -03:00
Maximilian Wörner d0f6d9e5c0 Update GitLab URL format in documentation
Signed-off-by: Maximilian Wörner <maxwoerner@gmail.com>
2026-04-17 10:34:28 +02:00
Maximilian Wörner 1933c4b817 Update GitLab URL format in old documentation
Signed-off-by: Maximilian Wörner <maxwoerner@gmail.com>
2026-04-17 10:34:02 +02:00
Dmitry Gusev 3ef6078b70 scaffolder: Support conditional if on output links and text (#33332)
* Add sample template for conditional output demo

Add a scaffolder template that exercises conditional `if` on output
links and text items, for testing issue #24805.

Signed-off-by: Dmitry Gusev <gusevda90@gmail.com>

* Support conditional `if` on scaffolder output links and text

Add `if` property to output link and text items in scaffolder templates,
allowing template authors to conditionally show/hide output items based
on parameters or step results. Items with a falsy `if` condition are
filtered out before being sent to the frontend.

Signed-off-by: Dmitry Gusev <gusevda90@gmail.com>

* Add changesets for conditional output feature

Signed-off-by: Dmitry Gusev <gusevda90@gmail.com>

* Document conditional if on output links and text

Signed-off-by: Dmitry Gusev <gusevda90@gmail.com>

* Guard against non-object items in output arrays

Signed-off-by: Dmitry Gusev <gusevda90@gmail.com>

* Skip array items in output if-filtering destructuring

Add Array.isArray guard to prevent corrupting array items
into plain objects during the rest-destructuring step.

Signed-off-by: Dmitry Gusev <gusevda90@gmail.com>

* Extract filterConditionalItems helper to deduplicate logic

Signed-off-by: Dmitry Gusev <gusevda90@gmail.com>

* Align output if schema descriptions with step if semantics

Signed-off-by: Dmitry Gusev <gusevda90@gmail.com>

* Fix docs quality check: replace 'falsy' wording

Signed-off-by: Dmitry Gusev <gusevda90@gmail.com>

* Refactor filterConditionalItems to use flatMap and generics

Replace .filter().map() with a single flatMap call and make the function
generic to eliminate JsonArray casts at call sites.

Signed-off-by: Dmitry Gusev <gusevda90@gmail.com>

---------

Signed-off-by: Dmitry Gusev <gusevda90@gmail.com>
2026-04-14 14:29:04 +02:00
Patrik Oldsberg d3627319a1 Merge pull request #33836 from backstage/rugvip/explore-standard-schema-decoupling
frontend-plugin-api: decouple zod dependency using Standard Schema
2026-04-14 12:27:53 +02:00
Andre Wanlin a52a2236d4 Merge pull request #33808 from meleu/patch-3
Update TechDocs CLI repo link, as the old repo was archived in 2021
2026-04-11 15:18:43 -05:00
Patrik Oldsberg fe8473b5f1 Fix review feedback: override warnings and search docs
Add explicit deprecation warnings in override and makeWithOverrides when
config.schema is used, since the merged result now passes through
configSchema. Update search declarative-integration docs to use
SearchResultListItemBlueprint instead of the removed extension creator.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-10 13:58:38 +02:00
Patrik Oldsberg 3218028048 docs: update extension config schema examples to new configSchema format
Switch all documentation examples from the deprecated
`config: { schema: { field: z => z.type() } }` pattern to the new
`configSchema: { field: z.type() }` format using zod v4 imports.
Also update catalog-graph README to use current blueprint APIs.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-10 10:58:21 +02:00
Claire Peng d4979b5178 add note about API Base URL in descriptor-format docs page
Signed-off-by: Claire Peng <clairep@spotify.com>
2026-04-09 10:57:56 +01:00
Andre Wanlin 6c6fbe207a Update docs/features/techdocs/troubleshooting.md
Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>
2026-04-08 11:56:08 -05:00
meleu 7da6368a72 Fix TechDocs CLI link
Updated TechDocs CLI link to point to the correct repository, as the old one is now archived.

Signed-off-by: meleu <meleu@users.noreply.github.com>
2026-04-08 13:04:04 -03:00
Patrik Oldsberg 8632502abe Merge pull request #33436 from jonkoops/remove-legacy-proxy-docs
docs: remove legacy corporate proxy documentation
2026-04-07 16:30:05 +02:00
Fredrik Adelöw 587981973c Merge pull request #33576 from backstage/maratd/replace-humanize-entity-ref
Replace deprecated humanizeEntityRef with Catalog Presentation API
2026-04-07 14:28:39 +02:00
Marat Dyatko b32ab39670 Fix unsafe type casts via shared entityPresentationSnapshot utility
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>
2026-04-07 12:41:29 +02:00
Patrik Oldsberg 9718e62c2d Merge pull request #33667 from backstage/docs-features-new-frontend-migration
docs: migrate feature documentation to new frontend system as primary content
2026-04-07 12:01:07 +02:00
Patrik Oldsberg b592810c5f Fix duplicate frontmatter IDs in old-system doc pages
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
2026-04-04 23:51:04 +02:00
Patrik Oldsberg 7f6b88783b docs: address review feedback on route refs, typos, and installation steps
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-04 16:15:01 +02:00
Patrik Oldsberg fb571af4ee fix: correct broken doc links in search getting-started guides
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
2026-04-04 12:47:25 +02:00
Patrik Oldsberg 18fde07e06 docs: address review feedback on code style in examples
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
2026-04-04 12:34:50 +02:00
Fredrik Adelöw bb7768ba06 docs: fix broken links and anchors across documentation
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>
2026-03-31 18:43:40 +02:00
Karthik 329f5920b6 feat(techdocs): add techdocs-cli option to disable external font download
Signed-off-by: Karthik <karthik.jk11@gmail.com>
2026-03-31 21:39:52 +05:30
Karthik 5ef8d166cb feat(techdocs): add app-config option to disable external font download
Signed-off-by: Karthik <karthik.jk11@gmail.com>
2026-03-31 21:30:45 +05:30
Patrik Oldsberg 561f555fb1 docs: address copilot review feedback
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
2026-03-30 12:42:11 +02:00
Patrik Oldsberg c9132c223c docs: improve new frontend system docs for techdocs, scaffolder, and catalog
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
2026-03-29 23:04:08 +02:00
Patrik Oldsberg 93cb19813f fix: correct broken link to extension overrides documentation
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-29 22:40:19 +02:00
Patrik Oldsberg 8ec254cd4b docs: migrate feature docs to new frontend system as primary content
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
2026-03-29 21:47:46 +02:00
Marat Dyatko e5af44c846 Address PR review feedback from freben
- 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
2026-03-27 14:04:04 +01:00
Marat Dyatko 5f9a531412 Replace deprecated humanizeEntityRef with Catalog Presentation API
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>
2026-03-26 08:59:43 +01:00
Jon Koops 980b7f5632 docs: remove legacy corporate proxy documentation
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>
2026-03-19 17:17:17 +01:00
Andre Wanlin 00617627b1 Merge pull request #33069 from awanlin/docs/scaffolder-clean-up
[Doc] Scaffolder clean up
2026-03-17 13:37:57 -05:00
Andre Wanlin f4c012dee3 Merge pull request #33064 from awanlin/docs/nfs-getting-started-auth
[Docs] NFS - Authentication
2026-03-17 12:35:02 -05:00
Jon Koops 956133bf45 docs: recommend Node.js built-in proxy support for corporate proxies (#33006)
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>
2026-03-17 13:13:00 -04:00
Andre Wanlin 11e380b83a Invert based on feedback
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-03-17 11:15:41 -05:00
Gabriel Dugny 49171c9de4 chore: Update all imports to zod/v3
Signed-off-by: Gabriel Dugny <gabriel.dugny@believe.com>
2026-03-17 16:48:42 +01:00
Andre Wanlin 9a82ed5269 [Docs] NFS - Authentication
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-03-17 10:30:58 -05:00
Andre Wanlin 765725c8c2 Fixed CI and addressed feedback
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-03-14 09:23:25 -05:00
Andre Wanlin ce8198bc15 Fixed link
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-03-14 09:23:25 -05:00
Andre Wanlin b35de8d2aa [Docs] Scaffolder Clean Up
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-03-14 09:23:25 -05:00
Gabriel Dugny 895563a1b7 fix(techdocs): Disable LighBox addon for images wrapped in links
Signed-off-by: Gabriel Dugny <gabriel.dugny@believe.com>

# Conflicts:
#	docs/features/techdocs/addons--new.md
#	docs/features/techdocs/addons.md

# Conflicts:
#	docs/features/techdocs/addons--new.md
2026-03-14 11:27:11 +01:00
Andre Wanlin d187a8b087 Merge pull request #32840 from iurylenonalves/docs-backstage-openapi
docs(catalog): add mention of backstage-openapi backend module to configuration
2026-03-13 13:35:09 -05:00
zeshanziya 4ec13e7cea docs: document full text filtering section of entity api
Signed-off-by: zeshanziya <zeshan.aws@gmail.com>
2026-03-12 16:34:34 +05:30
Ben Lambert e8736ea2e8 feat(scaffolder): implementing secrets schema for scaffolder templates (#32320)
* feat: implementing secrets schema for scaffolder templates

Signed-off-by: benjdlambert <ben@blam.sh>

* chore: fix and regenerate openapi
Signed-off-by: benjdlambert <ben@blam.sh>

Signed-off-by: benjdlambert <ben@blam.sh>

* chore: fix review feedback

Signed-off-by: benjdlambert <ben@blam.sh>

* fix: address code review feedback for secrets validation

- Extract validateSecrets helper to deduplicate validation logic
- Add auditorEvent.fail() call on secrets validation failure
- Sanitize instance field in error responses to prevent secret leakage
- Add retry endpoint test coverage for secrets validation
- Split changeset into per-package entries

Signed-off-by: benjdlambert <ben@blam.sh>

* refactor: nest secrets schema under secrets.schema

Move the JSON Schema definition from spec.secrets to
spec.secrets.schema to leave room for future extensions
like secret sources.

Signed-off-by: benjdlambert <ben@blam.sh>

* chore: update API reports

Signed-off-by: benjdlambert <ben@blam.sh>

* chore: use InputError for secrets validation audit event

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: benjdlambert <ben@blam.sh>
2026-03-10 11:47:40 +01:00