{"_id":"@alexandreamormino/plugin-entity-manager","_rev":"5-9a88696865328f9238be88cbdfcf86ba","name":"@alexandreamormino/plugin-entity-manager","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@alexandreamormino/plugin-entity-manager","version":"1.0.0","keywords":["backstage","backstage-plugin","entity-manager","catalog","frontend","yaml-editor"],"author":{"name":"Alexandre Amormino"},"license":"Apache-2.0","_id":"@alexandreamormino/plugin-entity-manager@1.0.0","maintainers":[{"name":"alexandreamormino","email":"xandeamormino@gmail.com"}],"homepage":"https://github.com/alexandreamormino/backstage-entity-manager#readme","bugs":{"url":"https://github.com/alexandreamormino/backstage-entity-manager/issues"},"dist":{"shasum":"5491b005dd07d90c32c8f68379822345e7d3691c","tarball":"https://registry.npmjs.org/@alexandreamormino/plugin-entity-manager/-/plugin-entity-manager-1.0.0.tgz","fileCount":14,"integrity":"sha512-KLHbCZ05SM0Q76ecYSh/LkKP0/odYqsNa1H35QWAxFOor58gxAmEFl+QsCcYq7M1t74jYqb/56slUEqMT+vTSQ==","signatures":[{"sig":"MEUCIB8DwHfZpJibY1OMoDLN4guJo+pqmLA13+T7yXAxmP09AiEA0SRBiRjhFWdk+rRzeBMu6LWQxDej2aevp4dt5HEXd9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84538},"main":"src/index.ts","types":"src/index.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":"alexandreamormino","email":"xandeamormino@gmail.com"},"backstage":{"role":"frontend-plugin","pluginId":"entity-manager","pluginPackages":["@alexandreamormino/plugin-entity-manager","@alexandreamormino/plugin-entity-manager-backend","@alexandreamormino/plugin-entity-manager-common","@alexandreamormino/plugin-entity-manager-react"]},"repository":{"url":"https://github.com/alexandreamormino/backstage-entity-manager.git","type":"git","directory":"plugins/entity-manager-frontend"},"description":"Frontend plugin for managing Backstage catalog entities through a Monaco YAML editor","directories":{},"sideEffects":false,"dependencies":{"react-use":"^17.2.4","@backstage/theme":"^0.6.7","@material-ui/lab":"^4.0.0-alpha.61","@material-ui/core":"^4.9.13","@material-ui/icons":"^4.9.1","@backstage/catalog-model":"^1.7.5","@backstage/plugin-catalog":"^1.28.0","@backstage/core-components":"^0.17.4","@backstage/core-plugin-api":"^1.10.9","@backstage/plugin-catalog-react":"^1.19.1","@backstage/plugin-permission-react":"^0.4.37","@alexandreamormino/plugin-entity-manager-react":"workspace:^","@alexandreamormino/plugin-entity-manager-common":"workspace:^"},"publishConfig":{"main":"dist/index.esm.js","types":"dist/index.d.ts","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.13.1 || ^17.0.0 || ^18.0.0","@backstage/cli":"^0.33.1","@backstage/dev-utils":"^1.1.12","@backstage/test-utils":"^1.7.10","@testing-library/react":"^14.0.0","@backstage/core-app-api":"^1.18.0","@testing-library/jest-dom":"^6.0.0"},"peerDependencies":{"react":"^16.13.1 || ^17.0.0 || ^18.0.0","react-dom":"^16.13.1 || ^17.0.0 || ^18.0.0","react-router-dom":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-entity-manager_1.0.0_1777134864424_0.5531572128043294","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alexandreamormino/plugin-entity-manager","version":"1.0.1","keywords":["backstage","backstage-plugin","entity-manager","catalog","frontend","yaml-editor"],"author":{"name":"Alexandre Amormino"},"license":"Apache-2.0","_id":"@alexandreamormino/plugin-entity-manager@1.0.1","maintainers":[{"name":"alexandreamormino","email":"xandeamormino@gmail.com"}],"homepage":"https://github.com/alexandreamormino/backstage-entity-manager#readme","bugs":{"url":"https://github.com/alexandreamormino/backstage-entity-manager/issues"},"dist":{"shasum":"e3ed53bd7ca4b1e5b1704d3c5dcc95ad6413a77b","tarball":"https://registry.npmjs.org/@alexandreamormino/plugin-entity-manager/-/plugin-entity-manager-1.0.1.tgz","fileCount":14,"integrity":"sha512-iyQYNW0SToVd3sOUHXrc+NZ82hd5wDfJ8dM4MP5I5VuBO+/1sCfNYoYJojnzvqkkclJfc8v2ovT2ZchUZjrQJw==","signatures":[{"sig":"MEUCIAS+5bcDR018dCyueLC4PBVuo/DtJ6r3Kk4x8hCmbCJGAiEAjqYwlM2UV2R7SHThlqoVUo2COvXvR0uqXrfT9qayJDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84528},"main":"src/index.ts","types":"src/index.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":"alexandreamormino","email":"xandeamormino@gmail.com"},"backstage":{"role":"frontend-plugin","pluginId":"entity-manager","pluginPackages":["@alexandreamormino/plugin-entity-manager","@alexandreamormino/plugin-entity-manager-backend","@alexandreamormino/plugin-entity-manager-common","@alexandreamormino/plugin-entity-manager-react"]},"repository":{"url":"https://github.com/alexandreamormino/backstage-entity-manager.git","type":"git","directory":"plugins/entity-manager-frontend"},"description":"Frontend plugin for managing Backstage catalog entities through a Monaco YAML editor","directories":{},"sideEffects":false,"dependencies":{"react-use":"^17.2.4","@backstage/theme":"^0.6.7","@material-ui/lab":"^4.0.0-alpha.61","@material-ui/core":"^4.9.13","@material-ui/icons":"^4.9.1","@backstage/catalog-model":"^1.7.5","@backstage/plugin-catalog":"^1.28.0","@backstage/core-components":"^0.17.4","@backstage/core-plugin-api":"^1.10.9","@backstage/plugin-catalog-react":"^1.19.1","@backstage/plugin-permission-react":"^0.4.37","@alexandreamormino/plugin-entity-manager-react":"^1.0.1","@alexandreamormino/plugin-entity-manager-common":"^1.0.1"},"publishConfig":{"main":"dist/index.esm.js","types":"dist/index.d.ts","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.13.1 || ^17.0.0 || ^18.0.0","@backstage/cli":"^0.33.1","@backstage/dev-utils":"^1.1.12","@backstage/test-utils":"^1.7.10","@testing-library/react":"^14.0.0","@backstage/core-app-api":"^1.18.0","@testing-library/jest-dom":"^6.0.0"},"peerDependencies":{"react":"^16.13.1 || ^17.0.0 || ^18.0.0","react-dom":"^16.13.1 || ^17.0.0 || ^18.0.0","react-router-dom":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-entity-manager_1.0.1_1777136191938_0.6991083938088654","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alexandreamormino/plugin-entity-manager","version":"1.0.2","keywords":["backstage","backstage-plugin","entity-manager","catalog","frontend","yaml-editor"],"author":{"name":"Alexandre Amormino"},"license":"Apache-2.0","_id":"@alexandreamormino/plugin-entity-manager@1.0.2","maintainers":[{"name":"alexandreamormino","email":"xandeamormino@gmail.com"}],"homepage":"https://github.com/alexandreamormino/backstage-entity-manager#readme","bugs":{"url":"https://github.com/alexandreamormino/backstage-entity-manager/issues"},"dist":{"shasum":"ef3aac68d61903bd6516ef285e8b7565a91798d1","tarball":"https://registry.npmjs.org/@alexandreamormino/plugin-entity-manager/-/plugin-entity-manager-1.0.2.tgz","fileCount":9,"integrity":"sha512-waTPv/0cvY6ubvwdu+ARVMF/mmH5dxwiwXRcJxjNf/7+5FJaZyrg2EDmtKwghJshxZysk9ZBdt21ZE7zSxaXfQ==","signatures":[{"sig":"MEUCIQDdJM4mx0Ux+g3Ybah97FX1NKoBHepBPN+YZe0whZL5CQIgL2zHL2D97jQ9BB8nuoX1T9GNDiR6aXovhfwtyiBk9r8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83815},"main":"src/index.ts","types":"src/index.ts","gitHead":"427368bedc12b7b7592c1dafb68eda4db966cd71","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":"alexandreamormino","email":"xandeamormino@gmail.com"},"backstage":{"role":"frontend-plugin","pluginId":"entity-manager","pluginPackages":["@alexandreamormino/plugin-entity-manager","@alexandreamormino/plugin-entity-manager-backend","@alexandreamormino/plugin-entity-manager-common","@alexandreamormino/plugin-entity-manager-react"]},"repository":{"url":"git+https://github.com/alexandreamormino/backstage-entity-manager.git","type":"git","directory":"plugins/entity-manager-frontend"},"_npmVersion":"10.8.2","description":"Frontend plugin for managing Backstage catalog entities through a Monaco YAML editor","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"react-use":"^17.2.4","@material-ui/lab":"^4.0.0-alpha.61","@material-ui/core":"^4.9.13","@material-ui/icons":"^4.9.1","@alexandreamormino/plugin-entity-manager-react":"workspace:^","@alexandreamormino/plugin-entity-manager-common":"workspace:^"},"publishConfig":{"main":"dist/index.esm.js","types":"dist/index.d.ts","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.13.1 || ^17.0.0 || ^18.0.0","@backstage/cli":"^0.33.1","@backstage/dev-utils":"^1.1.12","@backstage/test-utils":"^1.7.10","@testing-library/react":"^14.0.0","@backstage/core-app-api":"^1.18.0","@testing-library/jest-dom":"^6.0.0"},"peerDependencies":{"react":"^16.13.1 || ^17.0.0 || ^18.0.0","react-dom":"^16.13.1 || ^17.0.0 || ^18.0.0","@backstage/theme":"^0.6.7","react-router-dom":"^6.0.0","@backstage/catalog-model":"^1.7.5","@backstage/plugin-catalog":"^1.28.0","@backstage/core-components":"^0.17.4","@backstage/core-plugin-api":"^1.10.9","@backstage/plugin-catalog-react":"^1.19.1","@backstage/plugin-permission-react":"^0.4.37"},"_npmOperationalInternal":{"tmp":"tmp/plugin-entity-manager_1.0.2_1782613787440_0.2360973000030553","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@alexandreamormino/plugin-entity-manager","version":"1.0.3","keywords":["backstage","backstage-plugin","entity-manager","catalog","frontend","yaml-editor"],"author":{"name":"Alexandre Amormino"},"license":"Apache-2.0","_id":"@alexandreamormino/plugin-entity-manager@1.0.3","maintainers":[{"name":"alexandreamormino","email":"xandeamormino@gmail.com"}],"homepage":"https://github.com/alexandreamormino/backstage-entity-manager#readme","bugs":{"url":"https://github.com/alexandreamormino/backstage-entity-manager/issues"},"dist":{"shasum":"8a714049016472cabd8d0d34c9d15fc31f6ed067","tarball":"https://registry.npmjs.org/@alexandreamormino/plugin-entity-manager/-/plugin-entity-manager-1.0.3.tgz","fileCount":9,"integrity":"sha512-SRMVTwtq6F0c5uRJpeWWzG19GKcNYtykvwlsqNfmvGUdm25XcLsEs75t56+I2DpVj6i518hiM0ZNVD27CM5A+Q==","signatures":[{"sig":"MEQCIE67xD5WR2OQ842kMQtLlS/QOpYTh00xemndjcNYBqE0AiBFXVV0mRcaww1fudLN41B29MnSLFJCP3JSojPkxhm0IQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83805},"main":"src/index.ts","types":"src/index.ts","gitHead":"427368bedc12b7b7592c1dafb68eda4db966cd71","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":"alexandreamormino","email":"xandeamormino@gmail.com"},"backstage":{"role":"frontend-plugin","pluginId":"entity-manager","pluginPackages":["@alexandreamormino/plugin-entity-manager","@alexandreamormino/plugin-entity-manager-backend","@alexandreamormino/plugin-entity-manager-common","@alexandreamormino/plugin-entity-manager-react"]},"repository":{"url":"git+https://github.com/alexandreamormino/backstage-entity-manager.git","type":"git","directory":"plugins/entity-manager-frontend"},"_npmVersion":"10.8.2","description":"Frontend plugin for managing Backstage catalog entities through a Monaco YAML editor","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"react-use":"^17.2.4","@material-ui/lab":"^4.0.0-alpha.61","@material-ui/core":"^4.9.13","@material-ui/icons":"^4.9.1","@alexandreamormino/plugin-entity-manager-react":"^1.0.0","@alexandreamormino/plugin-entity-manager-common":"^1.0.0"},"publishConfig":{"main":"dist/index.esm.js","types":"dist/index.d.ts","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.13.1 || ^17.0.0 || ^18.0.0","@backstage/cli":"^0.33.1","@backstage/dev-utils":"^1.1.12","@backstage/test-utils":"^1.7.10","@testing-library/react":"^14.0.0","@backstage/core-app-api":"^1.18.0","@testing-library/jest-dom":"^6.0.0"},"peerDependencies":{"react":"^16.13.1 || ^17.0.0 || ^18.0.0","react-dom":"^16.13.1 || ^17.0.0 || ^18.0.0","@backstage/theme":"^0.6.7","react-router-dom":"^6.0.0","@backstage/catalog-model":"^1.7.5","@backstage/plugin-catalog":"^1.28.0","@backstage/core-components":"^0.17.4","@backstage/core-plugin-api":"^1.10.9","@backstage/plugin-catalog-react":"^1.19.1","@backstage/plugin-permission-react":"^0.4.37"},"_npmOperationalInternal":{"tmp":"tmp/plugin-entity-manager_1.0.3_1782664403875_0.5747839775380184","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@alexandreamormino/plugin-entity-manager","version":"1.0.4","description":"Frontend plugin for managing Backstage catalog entities through a Monaco YAML editor","license":"Apache-2.0","author":{"name":"Alexandre Amormino"},"homepage":"https://github.com/alexandreamormino/backstage-entity-manager#readme","repository":{"type":"git","url":"git+https://github.com/alexandreamormino/backstage-entity-manager.git","directory":"plugins/entity-manager-frontend"},"bugs":{"url":"https://github.com/alexandreamormino/backstage-entity-manager/issues"},"keywords":["backstage","backstage-plugin","entity-manager","catalog","frontend","yaml-editor"],"main":"src/index.ts","types":"src/index.ts","publishConfig":{"access":"public","main":"dist/index.esm.js","types":"dist/index.d.ts"},"backstage":{"role":"frontend-plugin","pluginId":"entity-manager","pluginPackages":["@alexandreamormino/plugin-entity-manager","@alexandreamormino/plugin-entity-manager-backend","@alexandreamormino/plugin-entity-manager-common","@alexandreamormino/plugin-entity-manager-react"]},"sideEffects":false,"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":{"@alexandreamormino/plugin-entity-manager-common":"^1.0.0","@alexandreamormino/plugin-entity-manager-react":"^1.0.0","@material-ui/core":"^4.9.13","@material-ui/icons":"^4.9.1","@material-ui/lab":"^4.0.0-alpha.61","react-use":"^17.2.4"},"peerDependencies":{"@backstage/catalog-model":"^1.7.5","@backstage/core-components":"^0.17.4","@backstage/core-plugin-api":"^1.10.9","@backstage/plugin-catalog":"^1.28.0","@backstage/plugin-catalog-react":"^1.19.1","@backstage/plugin-permission-react":"^0.4.37","@backstage/theme":"^0.6.7","react":"^16.13.1 || ^17.0.0 || ^18.0.0","react-dom":"^16.13.1 || ^17.0.0 || ^18.0.0","react-router-dom":"^6.0.0"},"devDependencies":{"@backstage/cli":"^0.33.1","@backstage/core-app-api":"^1.18.0","@backstage/dev-utils":"^1.1.12","@backstage/test-utils":"^1.7.10","@testing-library/jest-dom":"^6.0.0","@testing-library/react":"^14.0.0","react":"^16.13.1 || ^17.0.0 || ^18.0.0"},"_id":"@alexandreamormino/plugin-entity-manager@1.0.4","gitHead":"427368bedc12b7b7592c1dafb68eda4db966cd71","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-nEwO2tsvHAz3Ti3uq4u8/BuxLjmH60drVgsy14eAtd05ZnuGM/LfhTd21izNjvtAFLvz4UdiYcpspA9rvZ989A==","shasum":"0a9ed0d507d85b69d126eb269c722fbfc4275912","tarball":"https://registry.npmjs.org/@alexandreamormino/plugin-entity-manager/-/plugin-entity-manager-1.0.4.tgz","fileCount":9,"unpackedSize":85810,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDITYBWe0uh6mLCxB/+vvu7P8KP2Pj7HWGy9KE6O5bfXAIgZ3RHYdE3V9aeUBsQiB65vervMYXA9VVefJl3ED7knZI="}]},"_npmUser":{"name":"alexandreamormino","email":"xandeamormino@gmail.com"},"directories":{},"maintainers":[{"name":"alexandreamormino","email":"xandeamormino@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-entity-manager_1.0.4_1782671287061_0.3790246447273051"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-25T16:34:24.336Z","modified":"2026-06-28T18:28:07.331Z","1.0.0":"2026-04-25T16:34:24.551Z","1.0.1":"2026-04-25T16:56:32.078Z","1.0.2":"2026-06-28T02:29:47.575Z","1.0.3":"2026-06-28T16:33:24.018Z","1.0.4":"2026-06-28T18:28:07.206Z"},"bugs":{"url":"https://github.com/alexandreamormino/backstage-entity-manager/issues"},"author":{"name":"Alexandre Amormino"},"license":"Apache-2.0","homepage":"https://github.com/alexandreamormino/backstage-entity-manager#readme","keywords":["backstage","backstage-plugin","entity-manager","catalog","frontend","yaml-editor"],"repository":{"type":"git","url":"git+https://github.com/alexandreamormino/backstage-entity-manager.git","directory":"plugins/entity-manager-frontend"},"description":"Frontend plugin for managing Backstage catalog entities through a Monaco YAML editor","maintainers":[{"name":"alexandreamormino","email":"xandeamormino@gmail.com"}],"readme":"# Entity Manager Frontend Plugin\n\nFrontend plugin for creating and editing Backstage catalog entities through a YAML editor.\n\n## Installation\n\n```bash\ncd packages/app\nyarn add @alexandreamormino/plugin-entity-manager\n```\n\n#### Replace the Catalog Import Page\n\nEntity Manager can replace Backstage's default catalog import page while preserving the existing `/catalog-import` route and permission behavior.\n\nReplace the default route:\n\n```tsx\n<Route\n  path=\"/catalog-import\"\n  element={\n    <RequirePermission permission={catalogEntityCreatePermission}>\n      <CatalogImportPage />\n    </RequirePermission>\n  }\n/>\n```\n\nWith:\n\n```tsx\n<Route\n  path=\"/catalog-import\"\n  element={\n    <RequirePermission permission={catalogEntityCreatePermission}>\n      <EntityManagerCreatePage />\n    </RequirePermission>\n  }\n/>\n```\n\nAfter this change, users who access `/catalog-import` will see the Entity Manager creation page instead of the default Backstage catalog import page.\n\n> Remove the `CatalogImportPage` import from `App.tsx` when it is no longer used anywhere else in the application.\n\n#### Configure Catalog External Routes\n\nLocate the catalog external routes binding in `packages/app/src/App.tsx`:\n\n```tsx\nbind(catalogPlugin.externalRoutes, {\n  createComponent: scaffolderPlugin.routes.root,\n  viewTechDoc: techdocsPlugin.routes.docRoot,\n  createFromTemplate: scaffolderPlugin.routes.selectedTemplate,\n});\n```\n\nReplace it with:\n\n```tsx\nbind(catalogPlugin.externalRoutes, {\n  createComponent: entityManagerPlugin.routes.root,\n  viewTechDoc: techdocsPlugin.routes.docRoot,\n  createFromTemplate: scaffolderPlugin.routes.selectedTemplate,\n});\n```\n\nThis redirects catalog actions that create entities from templates to the Entity Manager plugin.\n\n#### Register the Entity Manager API\n\nIn `packages/app/src/apis.ts`, import the Entity Manager API factory:\n\n```tsx\nimport { entityManagerApiFactory } from '@alexandreamormino/plugin-entity-manager';\n```\n\nAdd `entityManagerApiFactory` to the `apis` array:\n\n```tsx\nexport const apis: AnyApiFactory[] = [\n  entityManagerApiFactory,\n  createApiFactory({\n    api: scmIntegrationsApiRef,\n    deps: { configApi: configApiRef },\n    factory: ({ configApi }) => ScmIntegrationsApi.fromConfig(configApi),\n  }),\n  ScmAuth.createDefaultApiFactory(),\n];\n```\n\nThis registers the Entity Manager API factory in the Backstage frontend application.\n\n#### Replace Catalog Entity Components\n\nIn `packages/app/src/components/catalog/EntityPage.tsx`, replace the default Backstage components with the Entity Manager equivalents.\n\nAdd the imports:\n\n```tsx\nimport {\n  EntityManagerAboutCard,\n  EntityManagerLayout,\n} from '@alexandreamormino/plugin-entity-manager';\n```\n\nReplace:\n\n```tsx\n<EntityAboutCard />\n```\n\nWith:\n\n```tsx\n<EntityManagerAboutCard />\n```\n\nReplace:\n\n```tsx\n<EntityLayout>\n  {/* Entity page content */}\n</EntityLayout>\n```\n\nWith:\n\n```tsx\n<EntityManagerLayout>\n  {/* Entity page content */}\n</EntityManagerLayout>\n```\n\n`EntityManagerAboutCard` is a drop-in replacement for `EntityAboutCard`.\n\n- Adds Edit and Delete actions for entities managed by Entity Manager\n- Renders the default Backstage entity card for all other entities\n\n`EntityManagerLayout` is a drop-in replacement for `EntityLayout`.\n\n- Hides the **Unregister entity** option for entities managed by Entity Manager\n- Preserves the default layout behavior for all other entities\n\n## Custom button integration\n\nIf you want to build your own card or toolbar, you can use the buttons directly. They are re-exported from `entity-manager-react` so a separate install is not required.\n\n```typescript\nimport {\n  EditEntityButton,\n  DeleteEntityButton,\n  isEntityManagerManaged,\n} from '@alexandreamormino/plugin-entity-manager';\nimport { usePermission } from '@backstage/plugin-permission-react';\nimport {\n  entityManagerUpdatePermission,\n  entityManagerDeletePermission,\n} from '@alexandreamormino/plugin-entity-manager-common';\n\nconst { allowed: canEdit } = usePermission({ permission: entityManagerUpdatePermission });\nconst { allowed: canDelete } = usePermission({ permission: entityManagerDeletePermission });\n\n<EditEntityButton\n  entityKind={entity.kind}\n  entityName={entity.metadata.name}\n  onLoadEntity={async () => {\n    const { entity: loaded } = await api.getEntity(entity.kind, entity.metadata.name);\n    return loaded;\n  }}\n  onSave={async (updated) => {\n    await api.updateEntity(entity.kind, entity.metadata.name, updated);\n  }}\n  disabled={!canEdit}\n  asIconButton\n/>\n\n<DeleteEntityButton\n  entityKind={entity.kind}\n  entityName={entity.metadata.name}\n  onDelete={async () => {\n    await api.deleteEntity(entity.kind, entity.metadata.name);\n  }}\n  disabled={!canDelete}\n  asIconButton\n/>\n```\n\n`isEntityManagerManaged(entity)` returns `true` when the entity's `backstage.io/managed-by-location` annotation starts with `entity-manager-provider:`.\n\n## Development\n\n```bash\nyarn workspace @alexandreamormino/plugin-entity-manager start\nyarn workspace @alexandreamormino/plugin-entity-manager test\nyarn workspace @alexandreamormino/plugin-entity-manager lint\n```\n","readmeFilename":"README.md"}