{"_id":"@alexandreamormino/plugin-entity-manager-backend","_rev":"5-b3107936ddd965c447149a3ae3be87cc","name":"@alexandreamormino/plugin-entity-manager-backend","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@alexandreamormino/plugin-entity-manager-backend","version":"1.0.0","keywords":["backstage","backstage-plugin","entity-manager","catalog","backend"],"author":{"name":"Alexandre Amormino"},"license":"Apache-2.0","_id":"@alexandreamormino/plugin-entity-manager-backend@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":"2ad4fd71e90d5216331ee346de4591e55762aa93","tarball":"https://registry.npmjs.org/@alexandreamormino/plugin-entity-manager-backend/-/plugin-entity-manager-backend-1.0.0.tgz","fileCount":9,"integrity":"sha512-sxzyqr3SheRw8svyGLCmtEzjZrYYNwLl1yqr7O44U3YNy+9NXjknUHPJFxmmvjD6ppLyIN++4Br5zqDaBVK2AQ==","signatures":[{"sig":"MEYCIQD5FJwzTFm2MbqHPDbY9Y/ayNi2uo3yQDHni3Bhos8lQgIhAN+uarLJvmCGGJttxt06gBkvwqniCmtJhXYXh2i4ka/4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122017},"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":"backend-plugin","pluginId":"entity-manager","pluginPackages":["@alexandreamormino/plugin-entity-manager","@alexandreamormino/plugin-entity-manager-backend","@alexandreamormino/plugin-entity-manager-common"]},"repository":{"url":"https://github.com/alexandreamormino/backstage-entity-manager.git","type":"git","directory":"plugins/entity-manager-backend"},"description":"Backend plugin for managing Backstage catalog entities with CRUD operations and validation","directories":{},"dependencies":{"knex":"^3.1.0","uuid":"^9.0.0","yaml":"^2.8.0","express":"^4.17.1","@backstage/config":"^1.3.3","express-promise-router":"^4.1.0","@backstage/catalog-model":"^1.7.5","@backstage/backend-common":"^0.25.0","@backstage/catalog-client":"^1.10.2","@backstage/backend-plugin-api":"^1.4.1","@backstage/plugin-catalog-node":"^1.17.2","@backstage/plugin-permission-node":"^0.8.5","@backstage/plugin-permission-common":"^0.9.2","@alexandreamormino/plugin-entity-manager-common":"workspace:^"},"publishConfig":{"main":"dist/index.cjs.js","types":"dist/index.d.ts","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"supertest":"^6.2.4","@types/uuid":"^9.0.0","@backstage/cli":"^0.33.1","@types/express":"^4.17.6","@types/supertest":"^2.0.12","@backstage/backend-test-utils":"^1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-entity-manager-backend_1.0.0_1777134841609_0.28386056732558473","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alexandreamormino/plugin-entity-manager-backend","version":"1.0.1","keywords":["backstage","backstage-plugin","entity-manager","catalog","backend"],"author":{"name":"Alexandre Amormino"},"license":"Apache-2.0","_id":"@alexandreamormino/plugin-entity-manager-backend@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":"a1e802cbb0fcf323d386ad6e913e44d8a796b8f2","tarball":"https://registry.npmjs.org/@alexandreamormino/plugin-entity-manager-backend/-/plugin-entity-manager-backend-1.0.1.tgz","fileCount":9,"integrity":"sha512-qrWUWfcER1p9vIra6ViQpTKqD4UKyjyC2K71OFl78SzmIC25u3CvcONnAABU0I7Q5OTLOwonSM/j6XJtPsUqcw==","signatures":[{"sig":"MEUCIQDcVMqlu8dG4rxltTzkDIo89ncGlPiXCxyfuQaIYCDgVAIgBM/XxjCqWHC1uyV3vosgX/Fug+13cRHaUh1ypEaRsk8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122012},"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":"backend-plugin","pluginId":"entity-manager","pluginPackages":["@alexandreamormino/plugin-entity-manager","@alexandreamormino/plugin-entity-manager-backend","@alexandreamormino/plugin-entity-manager-common"]},"repository":{"url":"https://github.com/alexandreamormino/backstage-entity-manager.git","type":"git","directory":"plugins/entity-manager-backend"},"description":"Backend plugin for managing Backstage catalog entities with CRUD operations and validation","directories":{},"dependencies":{"knex":"^3.1.0","uuid":"^9.0.0","yaml":"^2.8.0","express":"^4.17.1","@backstage/config":"^1.3.3","express-promise-router":"^4.1.0","@backstage/catalog-model":"^1.7.5","@backstage/backend-common":"^0.25.0","@backstage/catalog-client":"^1.10.2","@backstage/backend-plugin-api":"^1.4.1","@backstage/plugin-catalog-node":"^1.17.2","@backstage/plugin-permission-node":"^0.8.5","@backstage/plugin-permission-common":"^0.9.2","@alexandreamormino/plugin-entity-manager-common":"^1.0.1"},"publishConfig":{"main":"dist/index.cjs.js","types":"dist/index.d.ts","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"supertest":"^6.2.4","@types/uuid":"^9.0.0","@backstage/cli":"^0.33.1","@types/express":"^4.17.6","@types/supertest":"^2.0.12","@backstage/backend-test-utils":"^1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-entity-manager-backend_1.0.1_1777136167095_0.5567393693413378","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alexandreamormino/plugin-entity-manager-backend","version":"1.0.2","keywords":["backstage","backstage-plugin","entity-manager","catalog","backend"],"author":{"name":"Alexandre Amormino"},"license":"Apache-2.0","_id":"@alexandreamormino/plugin-entity-manager-backend@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":"14c5cc5f674023ffcc60fd9dc187ed8f7b8169e8","tarball":"https://registry.npmjs.org/@alexandreamormino/plugin-entity-manager-backend/-/plugin-entity-manager-backend-1.0.2.tgz","fileCount":5,"integrity":"sha512-ENpahb7vIJaQv1pXM/WReDss7iIO04NYlASQ2Im0AlUZWKL4V8AjkplPthD3dtrZR3AHjapMmypQo5aO+uDVpA==","signatures":[{"sig":"MEYCIQDxmZpF49p0wAY380XP9cyK3zdeFjwo17pKg8f58k1BfwIhAMZaj2a/Nv/HtnX+3KdvspYmrp56FvIXGP2/auAMx7VY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121745},"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":"backend-plugin","pluginId":"entity-manager","pluginPackages":["@alexandreamormino/plugin-entity-manager","@alexandreamormino/plugin-entity-manager-backend","@alexandreamormino/plugin-entity-manager-common"]},"repository":{"url":"git+https://github.com/alexandreamormino/backstage-entity-manager.git","type":"git","directory":"plugins/entity-manager-backend"},"_npmVersion":"10.8.2","description":"Backend plugin for managing Backstage catalog entities with CRUD operations and validation","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^3.22.4","knex":"^3.1.0","uuid":"^9.0.0","yaml":"^2.8.0","express":"^4.17.1","@backstage/config":"^1.3.3","express-promise-router":"^4.1.0","@backstage/catalog-model":"^1.7.5","@backstage/backend-common":"^0.25.0","@backstage/catalog-client":"^1.10.2","@backstage/backend-plugin-api":"^1.4.1","@backstage/plugin-catalog-node":"^1.17.2","@backstage/plugin-permission-node":"^0.8.5","@backstage/plugin-permission-common":"^0.9.2","@alexandreamormino/plugin-entity-manager-common":"workspace:^"},"publishConfig":{"main":"dist/index.cjs.js","types":"dist/index.d.ts","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"supertest":"^6.2.4","@types/uuid":"^9.0.0","@backstage/cli":"^0.33.1","@types/express":"^4.17.6","@types/supertest":"^2.0.12","@backstage/backend-test-utils":"^1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-entity-manager-backend_1.0.2_1782613766718_0.6226985225921062","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@alexandreamormino/plugin-entity-manager-backend","version":"1.0.3","keywords":["backstage","backstage-plugin","entity-manager","catalog","backend"],"author":{"name":"Alexandre Amormino"},"license":"Apache-2.0","_id":"@alexandreamormino/plugin-entity-manager-backend@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":"2d4196a250d0b8cec73bf584bee32b333d387710","tarball":"https://registry.npmjs.org/@alexandreamormino/plugin-entity-manager-backend/-/plugin-entity-manager-backend-1.0.3.tgz","fileCount":5,"integrity":"sha512-OrnGveHQJbBLB8YxNKQBxMoEWVHlzMpEzDJPK8kHNaDqVRaZC1xoDlXPNYLtZk6s0YdBZzSNLesURFn0ElS3+A==","signatures":[{"sig":"MEYCIQC1J0CbgcoKwr5Ae6yKj2VHuoOoHjIWdJXb/LpYJNXmlgIhAJITEsIYrEYcMYWy1XdkGK8AdO0fXzPUjOhBE5+r6ydF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121740},"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":"backend-plugin","pluginId":"entity-manager","pluginPackages":["@alexandreamormino/plugin-entity-manager","@alexandreamormino/plugin-entity-manager-backend","@alexandreamormino/plugin-entity-manager-common"]},"repository":{"url":"git+https://github.com/alexandreamormino/backstage-entity-manager.git","type":"git","directory":"plugins/entity-manager-backend"},"_npmVersion":"10.8.2","description":"Backend plugin for managing Backstage catalog entities with CRUD operations and validation","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^3.22.4","knex":"^3.1.0","uuid":"^9.0.0","yaml":"^2.8.0","express":"^4.17.1","@backstage/config":"^1.3.3","express-promise-router":"^4.1.0","@backstage/catalog-model":"^1.7.5","@backstage/backend-common":"^0.25.0","@backstage/catalog-client":"^1.10.2","@backstage/backend-plugin-api":"^1.4.1","@backstage/plugin-catalog-node":"^1.17.2","@backstage/plugin-permission-node":"^0.8.5","@backstage/plugin-permission-common":"^0.9.2","@alexandreamormino/plugin-entity-manager-common":"^1.0.0"},"publishConfig":{"main":"dist/index.cjs.js","types":"dist/index.d.ts","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"supertest":"^6.2.4","@types/uuid":"^9.0.0","@backstage/cli":"^0.33.1","@types/express":"^4.17.6","@types/supertest":"^2.0.12","@backstage/backend-test-utils":"^1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-entity-manager-backend_1.0.3_1782664397292_0.3845616440728672","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@alexandreamormino/plugin-entity-manager-backend","version":"1.0.4","description":"Backend plugin for managing Backstage catalog entities with CRUD operations and validation","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-backend"},"bugs":{"url":"https://github.com/alexandreamormino/backstage-entity-manager/issues"},"keywords":["backstage","backstage-plugin","entity-manager","catalog","backend"],"main":"src/index.ts","types":"src/index.ts","publishConfig":{"access":"public","main":"dist/index.cjs.js","types":"dist/index.d.ts"},"backstage":{"role":"backend-plugin","pluginId":"entity-manager","pluginPackages":["@alexandreamormino/plugin-entity-manager","@alexandreamormino/plugin-entity-manager-backend","@alexandreamormino/plugin-entity-manager-common"]},"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","@backstage/backend-common":"^0.25.0","@backstage/backend-plugin-api":"^1.4.1","@backstage/catalog-client":"^1.10.2","@backstage/catalog-model":"^1.7.5","@backstage/config":"^1.3.3","@backstage/plugin-catalog-node":"^1.17.2","@backstage/plugin-permission-common":"^0.9.2","@backstage/plugin-permission-node":"^0.8.5","express":"^4.17.1","express-promise-router":"^4.1.0","knex":"^3.1.0","uuid":"^9.0.0","yaml":"^2.8.0","zod":"^3.22.4"},"devDependencies":{"@backstage/backend-test-utils":"^1.7.0","@backstage/cli":"^0.33.1","@types/express":"^4.17.6","@types/supertest":"^2.0.12","@types/uuid":"^9.0.0","supertest":"^6.2.4"},"_id":"@alexandreamormino/plugin-entity-manager-backend@1.0.4","gitHead":"427368bedc12b7b7592c1dafb68eda4db966cd71","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-+p28Kog4VHHGp0QR5GsUvW5JF6MQ0YQzqBpEsnm23fA1B1zDAj557WK86YFzTZcVY9ZqxXCO1utGo3yfbOVDcw==","shasum":"186ff60f0b10377f95f8b67df49a18b4c38a4d84","tarball":"https://registry.npmjs.org/@alexandreamormino/plugin-entity-manager-backend/-/plugin-entity-manager-backend-1.0.4.tgz","fileCount":5,"unpackedSize":122298,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCA92m2tXm2XJ643gYywxA8/RbsDECzfqufqXb770EJxwIgWt0oJEXuxo/d7Wyq/ckzL/M99W0lrJ0XpD6+f+JTGQ4="}]},"_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-backend_1.0.4_1782671275039_0.28693068479435313"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-25T16:34:01.522Z","modified":"2026-06-28T18:27:55.267Z","1.0.0":"2026-04-25T16:34:01.745Z","1.0.1":"2026-04-25T16:56:07.241Z","1.0.2":"2026-06-28T02:29:26.851Z","1.0.3":"2026-06-28T16:33:17.420Z","1.0.4":"2026-06-28T18:27:55.166Z"},"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","backend"],"repository":{"type":"git","url":"git+https://github.com/alexandreamormino/backstage-entity-manager.git","directory":"plugins/entity-manager-backend"},"description":"Backend plugin for managing Backstage catalog entities with CRUD operations and validation","maintainers":[{"name":"alexandreamormino","email":"xandeamormino@gmail.com"}],"readme":"# Entity Manager Backend Plugin\n\nBackend plugin for managing Backstage catalog entities with CRUD operations, schema validation, and automatic catalog synchronization.\n\n## Installation\n\n```bash\ncd packages/backend\nyarn add @alexandreamormino/plugin-entity-manager-backend\n```\n\n### Register the Entity Manager Backend Module\n\nIn `packages/backend/src/index.ts`, import the Entity Manager backend module:\n\n```ts\nimport { entityManagerModule } from '@alexandreamormino/plugin-entity-manager-backend';\n```\n\nRegister the module alongside the existing backend plugin registrations:\n\n```ts\nbackend.add(import('@alexandreamormino/plugin-entity-manager-backend'));\nbackend.add(entityManagerModule);\n```\n\nExample:\n\n```ts\nimport { entityManagerModule } from '@alexandreamormino/plugin-entity-manager-backend';\n\n// Other backend modules...\n\nbackend.add(import('@alexandreamormino/plugin-entity-manager-backend'));\nbackend.add(entityManagerModule);\n```\n\nThis registers the Entity Manager backend module during Backstage startup.\nThe plugin creates its database tables on first startup, registers API routes at `/api/entity-manager/*`, and initializes the catalog provider.\n\n## Configuration\n\nAll configuration is optional. Add to `app-config.yaml`:\n\n```yaml\nentityManager:\n  enabledKinds:\n    - Component\n    - API\n    - Resource\n    - System\n\n  provider:\n    schedule:\n      frequency: { minutes: 5 }\n      timeout: { minutes: 3 }\n\n  schemas:\n    Component: schemas/component.schema.json\n\n  templates:\n    Component: templates/component.yaml\n```\n\nSchema and template paths are resolved relative to the backend working directory (`process.cwd()`).\n\n## API\n\nBase path: `/api/entity-manager`\n\n| Method | Endpoint | Auth required |\n|--------|----------|---------------|\n| GET | `/health` | — |\n| GET | `/config` | — |\n| GET | `/schemas` | — |\n| GET | `/schemas/:kind` | — |\n| GET | `/templates` | — |\n| GET | `/templates/:kind` | — |\n| POST | `/validate` | — |\n| POST | `/entities` | `entity.manager.entity.create` |\n| GET | `/entities` | `entity.manager.entity.list` |\n| GET | `/entities/:kind/:name` | `entity.manager.entity.read` |\n| PUT | `/entities/:kind/:name` | `entity.manager.entity.update` |\n| DELETE | `/entities/:kind/:name` | `entity.manager.entity.delete` |\n\n## Permissions\n\nCRUD routes enforce the corresponding permission from `@alexandreamormino/plugin-entity-manager-common`. See the root [README](../../README.md) for an example permission policy.\n\n## Development\n\n```bash\nyarn workspace @alexandreamormino/plugin-entity-manager-backend test\nyarn workspace @alexandreamormino/plugin-entity-manager-backend lint\n```\n","readmeFilename":"README.md"}