{"_id":"@backstagerunway/plugin-sleuth-dora-backend","_rev":"5-7e01001e2bbbcb543e6e5233877bd297","name":"@backstagerunway/plugin-sleuth-dora-backend","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@backstagerunway/plugin-sleuth-dora-backend","version":"0.1.0","keywords":["backstage","plugin","dora","metrics","sleuth","backend"],"license":"Apache-2.0","_id":"@backstagerunway/plugin-sleuth-dora-backend@0.1.0","maintainers":[{"name":"kashkash","email":"mahichr@gmail.com"},{"name":"nitin15j","email":"nitin15j@gmail.com"}],"homepage":"https://github.com/mahichr/backstage-sleuth#readme","bugs":{"url":"https://github.com/mahichr/backstage-sleuth/issues"},"dist":{"shasum":"bd1e54a5526c98706abae476cbc8b09cdf8e8957","tarball":"https://registry.npmjs.org/@backstagerunway/plugin-sleuth-dora-backend/-/plugin-sleuth-dora-backend-0.1.0.tgz","fileCount":15,"integrity":"sha512-0F4xRy8ua9/JiX50QWQS8WkRuZMmcZXEzJ8xAhmnSvnsMV0fu8yxO9Vm/y1eVv0mbzXBFL4y3IqDBzNaCF2ABw==","signatures":[{"sig":"MEUCIG8SiExI/DU00Genix+5jPgbrizW1267tcGAgzva0Y0IAiEAk2kIP9tq2JmKcf0PKeYwMshSEMFRxyBpwBovAD2fyek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102958},"main":"src/index.ts","types":"src/index.ts","gitHead":"6073245b6e8615407af6917beb96f598ffdd594f","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":"nitin15j","email":"nitin15j@gmail.com"},"backstage":{"role":"backend-plugin","pluginId":"sleuth-dora-backend","pluginPackages":["@backstagerunway/plugin-sleuth-dora-backend"]},"repository":{"url":"git+https://github.com/mahichr/backstage-sleuth.git","type":"git","directory":"plugins/sleuth-dora-backend"},"_npmVersion":"11.3.0","description":"A Backstage backend plugin that provides DORA (DevOps Research and Assessment) metrics integration with Sleuth.io. This plugin fetches and serves DORA metrics data to the frontend components.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.22.4","express":"^4.17.1","graphql":"^16.11.0","cross-fetch":"^4.1.0","@apollo/client":"^3.13.9","graphql-request":"^7.2.0","@backstage/errors":"^1.2.7","express-promise-router":"^4.1.0","@backstage/catalog-client":"^1.9.1","@backstage/backend-defaults":"^0.9.0","@backstage/backend-plugin-api":"^1.3.0","@backstage/plugin-catalog-node":"^1.16.3"},"publishConfig":{"main":"dist/index.cjs.js","types":"dist/index.d.ts","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"supertest":"^6.2.4","typescript":"~5.8.0","@types/node":"^16.11.26","@backstage/cli":"^0.32.0","@types/express":"^4.17.6","@types/supertest":"^2.0.12","@backstage/backend-test-utils":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-sleuth-dora-backend_0.1.0_1755775919338_0.5565611482397315","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@backstagerunway/plugin-sleuth-dora-backend","version":"0.2.0","keywords":["backstage","plugin","dora","metrics","sleuth","backend"],"license":"Apache-2.0","_id":"@backstagerunway/plugin-sleuth-dora-backend@0.2.0","maintainers":[{"name":"kashkash","email":"mahichr@gmail.com"},{"name":"nitin15j","email":"nitin15j@gmail.com"}],"homepage":"https://github.com/mahichr/backstage-sleuth#readme","bugs":{"url":"https://github.com/mahichr/backstage-sleuth/issues"},"dist":{"shasum":"f6ea97e5ab01889c9616f7075a93240bf091da62","tarball":"https://registry.npmjs.org/@backstagerunway/plugin-sleuth-dora-backend/-/plugin-sleuth-dora-backend-0.2.0.tgz","fileCount":15,"integrity":"sha512-zNap5Uz+4uIe1CCN2AhPbyFGixxxmi9KvRhOGgYkgTf2mpAyAeRPo5v1Ij5UnSEIijvh0leLSYP0nlkTELFK/g==","signatures":[{"sig":"MEUCIBLTXmDnty+ghJN9fjAXX8uKyiGvI2CcuT6/J232IOsBAiEAol4R2m2iwFZwttoE2JwZF9zEpbJVSGI7ayvvNR1IPDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103866},"main":"src/index.ts","types":"src/index.ts","gitHead":"06e426f71551e4da2f41ffdcf1c3e914cf79d433","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":"nitin15j","email":"nitin15j@gmail.com"},"backstage":{"role":"backend-plugin","pluginId":"sleuth-dora-backend","pluginPackages":["@backstagerunway/plugin-sleuth-dora-backend"]},"repository":{"url":"git+https://github.com/mahichr/backstage-sleuth.git","type":"git","directory":"plugins/sleuth-dora-backend"},"_npmVersion":"11.3.0","description":"A Backstage backend plugin that provides DORA (DevOps Research and Assessment) metrics integration with Sleuth.io. This plugin fetches and serves DORA metrics data to the frontend components.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.22.4","express":"^4.17.1","graphql":"^16.11.0","cross-fetch":"^4.1.0","@apollo/client":"^3.13.9","graphql-request":"^7.2.0","@backstage/errors":"^1.2.7","express-promise-router":"^4.1.0","@backstage/catalog-client":"^1.9.1","@backstage/backend-defaults":"^0.9.0","@backstage/backend-plugin-api":"^1.3.0","@backstage/plugin-catalog-node":"^1.16.3"},"publishConfig":{"main":"dist/index.cjs.js","types":"dist/index.d.ts","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"supertest":"^6.2.4","typescript":"~5.8.0","@types/node":"^16.11.26","@backstage/cli":"^0.32.0","@types/express":"^4.17.6","@types/supertest":"^2.0.12","@backstage/backend-test-utils":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-sleuth-dora-backend_0.2.0_1756141863770_0.02057877064220981","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@backstagerunway/plugin-sleuth-dora-backend","version":"0.3.0","license":"Apache-2.0","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":"sleuth-dora-backend","pluginPackages":["@backstagerunway/plugin-sleuth-dora-backend"]},"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":{"@apollo/client":"^3.13.9","@backstage/backend-defaults":"^0.9.0","@backstage/backend-plugin-api":"^1.3.0","@backstage/catalog-client":"^1.9.1","@backstage/errors":"^1.2.7","@backstage/plugin-catalog-node":"^1.16.3","cross-fetch":"^4.1.0","express":"^4.17.1","express-promise-router":"^4.1.0","graphql":"^16.11.0","graphql-request":"^7.2.0","zod":"^3.22.4"},"devDependencies":{"@backstage/backend-test-utils":"^1.4.0","@backstage/cli":"^0.32.0","@types/express":"^4.17.6","@types/node":"^16.11.26","@types/supertest":"^2.0.12","supertest":"^6.2.4","typescript":"~5.8.0"},"configSchema":"config.d.ts","keywords":["backstage","plugin","dora","metrics","sleuth","backend"],"repository":{"type":"git","url":"git+https://github.com/mahichr/backstage-sleuth.git","directory":"plugins/sleuth-dora-backend"},"_id":"@backstagerunway/plugin-sleuth-dora-backend@0.3.0","gitHead":"e5d858c4c9d9164880d88f91262531096e264f29","description":"A Backstage backend plugin that provides DORA (DevOps Research and Assessment) metrics integration with Sleuth.io. This plugin fetches and serves DORA metrics data to the frontend components.","bugs":{"url":"https://github.com/mahichr/backstage-sleuth/issues"},"homepage":"https://github.com/mahichr/backstage-sleuth#readme","_nodeVersion":"22.15.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-heEFXz6XU8D320DSX4GQ8gsY1dKSdzezGU+1lz+v1vQOjtKYExrI+ZWAcbjyY1G0bEfDzv+xTFPGTDXmyG7rGA==","shasum":"c27bf978b09658655520df2a1e55217a7b3417bf","tarball":"https://registry.npmjs.org/@backstagerunway/plugin-sleuth-dora-backend/-/plugin-sleuth-dora-backend-0.3.0.tgz","fileCount":16,"unpackedSize":97998,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAaPtj2m8DG/dq+ujMRMSL0DQzHFEeT8m4WEc82xRVl3AiBiIzHGmUQGIR1asHGmty+alUvyPZGVE+yU4qclUjOBug=="}]},"_npmUser":{"name":"nitin15j","email":"nitin15j@gmail.com"},"directories":{},"maintainers":[{"name":"kashkash","email":"mahichr@gmail.com"},{"name":"nitin15j","email":"nitin15j@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-sleuth-dora-backend_0.3.0_1756827636336_0.6033878304230764"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-21T11:31:59.169Z","modified":"2025-09-02T15:40:36.757Z","0.4.0":"2025-08-21T11:28:17.511Z","0.1.0":"2025-08-21T11:31:59.585Z","0.2.0":"2025-08-25T17:11:03.983Z","0.3.0":"2025-09-02T15:40:36.543Z"},"bugs":{"url":"https://github.com/mahichr/backstage-sleuth/issues"},"license":"Apache-2.0","homepage":"https://github.com/mahichr/backstage-sleuth#readme","keywords":["backstage","plugin","dora","metrics","sleuth","backend"],"repository":{"type":"git","url":"git+https://github.com/mahichr/backstage-sleuth.git","directory":"plugins/sleuth-dora-backend"},"description":"A Backstage backend plugin that provides DORA (DevOps Research and Assessment) metrics integration with Sleuth.io. This plugin fetches and serves DORA metrics data to the frontend components.","maintainers":[{"name":"kashkash","email":"mahichr@gmail.com"},{"name":"nitin15j","email":"nitin15j@gmail.com"}],"readme":"# @backstagerunway/plugin-sleuth-dora-backend\r\n\r\nA Backstage backend plugin that provides DORA (DevOps Research and Assessment) metrics integration with Sleuth.io. This plugin fetches and serves DORA metrics data to the frontend components.\r\n\r\n## Features\r\n\r\n- **Sleuth.io Integration**: Connects to Sleuth.io API to fetch DORA metrics\r\n- **RESTful API**: Provides endpoints for retrieving metrics data\r\n- **Configurable**: Supports custom Sleuth.io organization and API configuration\r\n- **Authentication**: Integrates with Backstage's authentication system\r\n\r\n## Prerequisites\r\n\r\n- A Backstage application\r\n- A Sleuth.io account with API access\r\n- Your Sleuth.io API key and organization ID\r\n\r\n## Installation\r\n\r\n1. Install the plugin in your backend package:\r\n\r\n```bash\r\ncd packages/backend\r\nyarn add @backstagerunway/plugin-sleuth-dora-backend\r\n```\r\n\r\n2. Add the plugin to your backend:\r\n\r\n```typescript\r\n// packages/backend/src/index.ts\r\nimport { createBackend } from '@backstage/backend-defaults';\r\n\r\nconst backend = createBackend();\r\n\r\n// Add the DORA backend plugin\r\nbackend.add(import('@backstagerunway/plugin-sleuth-dora-backend'));\r\n\r\nbackend.start();\r\n```\r\n\r\n## Configuration\r\n\r\nAdd the following configuration to your `app-config.yaml`:\r\n\r\n```yaml\r\ndora:\r\n  sleuth:\r\n    organizationId: 'your-sleuth-organization-id'\r\n    apiKey: 'your-sleuth-api-key-here'\r\n    # Optional frontend-visible defaults\r\n    environment: 'production'\r\n    defaultProjectSlug: 'your-default-project'\r\n    # apiUrl is optional - defaults to 'https://app.sleuth.io' if not specified\r\n    # apiUrl: 'https://app.sleuth.io'\r\n```\r\n\r\n### Configuration Options & Precedence\r\n\r\nRequired (backend-only):\r\n- `organizationId`: Your Sleuth.io organization identifier\r\n- `apiKey`: Your Sleuth.io API key for authentication\r\n\r\nOptional (frontend-visible):\r\n- `environment` (default: `production`)\r\n- `defaultProjectSlug` (default: `sleuth`)\r\n- `defaultTimeRange` (default: `last28days`)\r\n- `apiUrl` (default: `https://app.sleuth.io`)\r\n\r\nFrontend resolution order:\r\n1. Entity annotations (if present)\r\n2. App config (keys above)\r\n3. Built-in defaults\r\n\r\n## API Endpoints\r\n\r\nThe plugin provides the following REST endpoints:\r\n\r\n- `GET /api/dora/metrics` - Retrieve DORA metrics for the organization\r\n- `GET /api/dora/metrics/teams` - Retrieve DORA metrics for specific teams\r\n- `GET /api/dora/metrics/entity` - Retrieve DORA metrics for a specific entity/project\r\n\r\n## Development\r\n\r\n### Running the Plugin Locally\r\n\r\n1. Clone the repository\r\n2. Install dependencies: `yarn install`\r\n3. Configure your Sleuth.io credentials in `app-config.yaml`\r\n4. Start the backend: `yarn start`\r\n\r\n### Testing\r\n\r\n```bash\r\nyarn test\r\n```\r\n\r\n## Troubleshooting\r\n\r\n### Common Issues\r\n\r\n1. **API Key Issues**: Ensure your Sleuth.io API key is valid and has the necessary permissions\r\n2. **Organization ID**: Verify your organization ID is correct in the configuration\r\n3. **Network Issues**: Check that your backend can reach the Sleuth.io API\r\n\r\n### Logs\r\n\r\nThe plugin logs important events and errors. Check your backend logs for debugging information.","readmeFilename":"README.md"}