{"_id":"@digital-ai/plugin-scaffolder-frontend-module-deploy-app-field","_rev":"2-679c5e99ec62ce98f8887d0e128879c7","name":"@digital-ai/plugin-scaffolder-frontend-module-deploy-app-field","dist-tags":{"latest":"0.0.1-alpha.2"},"versions":{"0.0.1-alpha.1":{"name":"@digital-ai/plugin-scaffolder-frontend-module-deploy-app-field","version":"0.0.1-alpha.1","keywords":["backstage","custom-field-extension","frontend-plugin","deploy-application"],"author":{"name":"Digital.ai"},"license":"Apache-2.0","_id":"@digital-ai/plugin-scaffolder-frontend-module-deploy-app-field@0.0.1-alpha.1","maintainers":[{"name":"gvolarevic-dai","email":"glorija.volarevic@digital.ai"},{"name":"agavaldas","email":"angel.gavalda@gmail.com"},{"name":"msnively","email":"msnively@gmail.com"},{"name":"jcaldas","email":"john.caldas@digital.ai"},{"name":"geekzoo-dai","email":"rex.matthews@digital.ai"},{"name":"dai-npmjs-bot","email":"ops+dai-npmjs@digital.ai"},{"name":"grantcroker-dai","email":"grant.croker@digital.ai"}],"homepage":"https://digital.ai/","bugs":{"url":"https://github.com/digital-ai/backstage-software-template/issues"},"dist":{"shasum":"a07c86bcbe3d4c9974f43bfbf19ae6ae0dfdc5bf","tarball":"https://registry.npmjs.org/@digital-ai/plugin-scaffolder-frontend-module-deploy-app-field/-/plugin-scaffolder-frontend-module-deploy-app-field-0.0.1-alpha.1.tgz","fileCount":12,"integrity":"sha512-Zx3KUO+CbT5oDPdSDt9qt7lySuF5eJSkBdLNoxQaRlJaoptdFShAvrPKtZ4ocU1zYy5Gf+QdX8IaNRDbP3UHNg==","signatures":[{"sig":"MEUCIEkg+TYqIPtz89FP/f7eul+4sPFpRhnjBbfVFzHCCqloAiEA8JaHsE0bwGkG0HU045kAsBFkCS9DCG6gl/0QLfHMfnc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19123},"jest":{"transformIgnorePatterns":["node_modules/(?!(.*))"]},"main":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"lint":"backstage-cli package lint","test":"backstage-cli package test","build":"backstage-cli package build","clean":"backstage-cli package clean","start":"backstage-cli package start","prepack":"backstage-cli package prepack","postpack":"backstage-cli package postpack"},"_npmUser":{"name":"dai-npmjs-bot","email":"ops+dai-npmjs@digital.ai"},"backstage":{"role":"frontend-plugin","pluginId":"scaffolder-frontend-module-deploy-app-field","pluginPackages":["@digital-ai/plugin-scaffolder-frontend-module-deploy-app-field"]},"repository":{"url":"git+https://github.com/digital-ai/backstage-software-template.git","type":"git"},"description":"Custom Field Extensions (Frontend Plugin)- List Deploy Application","directories":{},"resolutions":{"@types/react":"^18.0.2","@types/react-dom":"^18.0.2"},"dependencies":{"zod":"^3.22.4","react":"^18.0.2","react-dom":"^18.0.2","react-use":"^17.6.0","@rjsf/utils":"^5.24.7","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.0","@backstage/theme":"^0.6.4","@material-ui/lab":"^4.0.0-alpha.61","react-router-dom":"^6.3.0","@material-ui/core":"^4.12.4","@material-ui/icons":"^4.11.3","@rjsf/validator-ajv8":"^5.24.7","@backstage/core-components":"^0.16.4","@backstage/core-plugin-api":"^1.10.4","@backstage/plugin-scaffolder":"^1.28.0","@backstage/plugin-scaffolder-react":"^1.14.5"},"publishConfig":{"main":"dist/index.esm.js","types":"dist/index.d.ts","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^1.0.0","typescript":"^5.8.2","@types/react":"^18.0.2","@backstage/cli":"^0.30.0","@types/react-dom":"^18.0.2","@backstage/dev-utils":"^1.1.7","@testing-library/dom":"^10.4.0","@backstage/test-utils":"^1.7.5","@testing-library/react":"^16.2.0","@backstage/core-app-api":"^1.15.5","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^16.13.1 || ^17.0.0 || ^18.0.2","react-dom":"^16.13.1 || ^17.0.0 || ^18.0.2","react-router-dom":"6.0.0-beta.0 || ^6.3.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-scaffolder-frontend-module-deploy-app-field_0.0.1-alpha.1_1744170898923_0.8176472764693985","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-alpha.2":{"name":"@digital-ai/plugin-scaffolder-frontend-module-deploy-app-field","version":"0.0.1-alpha.2","main":"dist/index.esm.js","types":"dist/index.d.ts","license":"Apache-2.0","publishConfig":{"access":"public","main":"dist/index.esm.js","types":"dist/index.d.ts"},"backstage":{"role":"frontend-plugin","pluginId":"scaffolder-frontend-module-deploy-app-field","pluginPackages":["@digital-ai/plugin-scaffolder-frontend-module-deploy-app-field"]},"scripts":{"start":"backstage-cli package start","build":"backstage-cli package build","lint":"backstage-cli package lint","test":"backstage-cli package test","clean":"backstage-cli package clean","prepack":"backstage-cli package prepack","postpack":"backstage-cli package postpack"},"dependencies":{"@backstage/core-components":"^0.16.4","@backstage/core-plugin-api":"^1.10.4","@backstage/plugin-scaffolder":"^1.28.0","@backstage/plugin-scaffolder-react":"^1.14.5","@backstage/theme":"^0.6.4","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.0","@material-ui/icons":"^4.11.3","@material-ui/lab":"^4.0.0-alpha.61","@material-ui/core":"^4.12.4","@rjsf/utils":"^5.24.7","@rjsf/validator-ajv8":"^5.24.7","react":"^18.0.2","react-dom":"^18.0.2","react-router-dom":"^6.3.0","react-use":"^17.6.0","zod":"^3.22.4"},"resolutions":{"@types/react":"^18.0.2","@types/react-dom":"^18.0.2"},"peerDependencies":{"react":"^16.13.1 || ^17.0.0 || ^18.0.2","react-dom":"^16.13.1 || ^17.0.0 || ^18.0.2","react-router-dom":"6.0.0-beta.0 || ^6.3.0"},"devDependencies":{"@backstage/cli":"^0.30.0","@backstage/core-app-api":"^1.15.5","@backstage/dev-utils":"^1.1.7","@backstage/test-utils":"^1.7.5","@testing-library/dom":"^10.4.0","@testing-library/jest-dom":"^6.6.3","@testing-library/react":"^16.2.0","@testing-library/user-event":"^14.6.1","msw":"^1.0.0","typescript":"^5.8.2","@types/react":"^18.0.2","@types/react-dom":"^18.0.2"},"description":"Custom Field Extensions (Frontend Plugin)- List Deploy Application","keywords":["backstage","custom-field-extension","frontend-plugin","deploy-application"],"author":{"name":"Digital.ai"},"homepage":"https://digital.ai/","bugs":{"url":"https://github.com/digital-ai/backstage-software-template/issues"},"repository":{"type":"git","url":"git+https://github.com/digital-ai/backstage-software-template.git"},"jest":{"transformIgnorePatterns":["node_modules/(?!(.*))"]},"_id":"@digital-ai/plugin-scaffolder-frontend-module-deploy-app-field@0.0.1-alpha.2","dist":{"shasum":"d215783dca3dc3ad3d927ef888caf34d3218cca4","integrity":"sha512-BvuqbkkT84GgGZlpdlsdIXfXiQZw2exgRB/EjSfnnvqkPe0OyheNnEM1zboLlwrkYKIpNhh4xCxhLLXLPGgW5A==","tarball":"https://registry.npmjs.org/@digital-ai/plugin-scaffolder-frontend-module-deploy-app-field/-/plugin-scaffolder-frontend-module-deploy-app-field-0.0.1-alpha.2.tgz","fileCount":12,"unpackedSize":19123,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDbthFmc0SAmF0g2ZzzQzF0NcANt9XSWCdYi5dDzrmvgAiBDxHistZXF6OFFL9ScymJfALjKRgpwbgr5Nz8TLf65Xw=="}]},"_npmUser":{"name":"dai-npmjs-bot","email":"ops+dai-npmjs@digital.ai"},"directories":{},"maintainers":[{"name":"gvolarevic-dai","email":"glorija.volarevic@digital.ai"},{"name":"agavaldas","email":"angel.gavalda@gmail.com"},{"name":"msnively","email":"msnively@gmail.com"},{"name":"jcaldas","email":"john.caldas@digital.ai"},{"name":"geekzoo-dai","email":"rex.matthews@digital.ai"},{"name":"dai-npmjs-bot","email":"ops+dai-npmjs@digital.ai"},{"name":"grantcroker-dai","email":"grant.croker@digital.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-scaffolder-frontend-module-deploy-app-field_0.0.1-alpha.2_1744693492427_0.341311408861799"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-09T03:54:58.826Z","modified":"2025-04-15T05:04:52.872Z","0.0.1-alpha.1":"2025-04-09T03:54:59.130Z","0.0.1-alpha.2":"2025-04-15T05:04:52.616Z"},"bugs":{"url":"https://github.com/digital-ai/backstage-software-template/issues"},"author":{"name":"Digital.ai"},"license":"Apache-2.0","homepage":"https://digital.ai/","keywords":["backstage","custom-field-extension","frontend-plugin","deploy-application"],"repository":{"type":"git","url":"git+https://github.com/digital-ai/backstage-software-template.git"},"description":"Custom Field Extensions (Frontend Plugin)- List Deploy Application","maintainers":[{"name":"gvolarevic-dai","email":"glorija.volarevic@digital.ai"},{"name":"agavaldas","email":"angel.gavalda@gmail.com"},{"name":"msnively","email":"msnively@gmail.com"},{"name":"jcaldas","email":"john.caldas@digital.ai"},{"name":"geekzoo-dai","email":"rex.matthews@digital.ai"},{"name":"dai-npmjs-bot","email":"ops+dai-npmjs@digital.ai"},{"name":"grantcroker-dai","email":"grant.croker@digital.ai"}],"readme":"# scaffolder-frontend-module-deploy-app-field\n\nWelcome to the scaffolder-frontend-module-deploy-app-field plugin!\n\nThis plugin is a Custom Field Extension for Backstage. It allows you to add a set of drop-down lists to pick a Application already available in deploy.\nIt interacts with the configured Deploy Host to load the list of available Application from Deploy.\n\n## Preview\n\n![Deploy Application Selector Custom Field Extension Preview](img/DeployApplicationSelector.png)\n## Installation\n\nFrom your Backstage instance root folder:\n```shell\nyarn add --cwd packages/app @digital-ai/plugin-scaffolder-frontend-module-deploy-app-field\n```\n\n## Configuration\n\n1. Add the import to your `packages/app/src/App.tsx` on the frontend package of your Backstage instance:\n\n```js\n// packages/app/src/App.tsx\n\nimport { DeployApplicationSelectorFieldExtension } from '@digital-ai/plugin-scaffolder-frontend-module-deploy-app-field';\nimport { ScaffolderFieldExtensions } from '@backstage/plugin-scaffolder-react';\n```\n\n2. Then add the imported field extension as a child of `ScaffolderFieldExtensions` inside `Route`, like so:\n\n```js\n// packages/app/src/App.tsx\n\n<Route path=\"/create\" element={<ScaffolderPage />}>\n  <ScaffolderFieldExtensions>\n    <DeployApplicationSelectorFieldExtension />\n  </ScaffolderFieldExtensions>\n</Route>\n```\n\n3. This custom field extension populates the dropdown list with applications from XL-Deploy, which is expected to be proxied by Backstage at the following path: `/deploy-app`. As such, you need to add the appropriate configuration to your `app-config.yaml` file under the `proxy.endpoints` field, like so:\n\n```yaml\n# app-config.yaml\n\nproxy:\n  /deploy-app:\n    target: http://localhost:4516/\n    changeOrigin: true\n    headers:\n      Authorization: Basic YWRtaW46YWRtaW4=\n```\n\nYou should now see the custom field `DeployApplicationSelectorFieldExtension` and its dropdown lists populated if you navigate to the Template Editor page at http://localhost:3000/create/edit.\n\n## Usage\n\nTo use the extension in a Backstage Software Template, you can add the `ui:field` field to the parameter. The output of the extension is an object made up of the following fields:\n- `deployApplication`: the Application name selected by the user.\n\n```yaml\n  parameters:\n    - title:  Select Deploy Application\n      required:\n        - deploy\n      properties:\n        deploy:\n          type: object\n          properties:\n            deployApplication:\n              type: string\n          ui:field: DeployApplicationeSelectorExtension\n          ui:autofocus: true\n```\n","readmeFilename":"README.md"}