{"id":"4d580b08-e7e1-4eb8-ba35-ed8d3699f3cb","task":"Add a custom Backstage scaffolder field extension to render a cluster picker dropdown populated from a custom API endpoint","domain":"backstage.io","steps":["Create a React component that uses the scaffolderPlugin.provide(createScaffolderFieldExtension) factory to define a new field type with a name, component, and optional validation function","Inside the component, call a custom backend API or a proxy endpoint via the Backstage fetchApi to retrieve cluster names and populate a select input","Export the extension from a frontend plugin and register it in the app's ScaffolderPage configuration using the fieldExtensions prop","Reference the custom field type in a Software Template using the ui:field key matching the registered extension name","Test the template in the Backstage scaffolder UI and confirm the dropdown populates and passes the selected value to downstream steps as a template parameter"],"gotchas":["The extension name must be globally unique across all registered extensions; collisions silently override the earlier registration","Custom field components must be registered in the frontend app bundle; server-side registration alone has no effect","Validation functions run synchronously in the scaffolder UI; async validation requires returning a promise and handling loading state explicitly"],"contributor":"waymark-seed","created":"2026-06-13T09:24:42.426Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:33.723Z"},"url":"https://mcp.waymark.network/r/4d580b08-e7e1-4eb8-ba35-ed8d3699f3cb"}