{"_id":"@nospt/backstage-plugin-catalog-gcp","_rev":"27-9f6c959d6f63193971bbe5b8df1ddf60","name":"@nospt/backstage-plugin-catalog-gcp","dist-tags":{"latest":"1.0.0","rc2":"1.0.0-rc3","rc6":"1.0.0-rc6","rc":"1.0.0-rc15","next":"1.0.0-rc19"},"versions":{"0.8.0":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"0.8.0","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@0.8.0","maintainers":[{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"66e04444336ea342edd5b2c3602157796b264c93","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-0.8.0.tgz","fileCount":50,"integrity":"sha512-KJiE4zH5BSWyjnUE9Gaj+2vIoSwUkSHmq96drlxywKdd4+F4b8oCK7pCSYjmExvEuqIFbrWwt/hNSdjB7ADoFg==","signatures":[{"sig":"MEUCIQCvsEUGNT4QSlu8uf2LlySCp4P+Z/UYPw8dJQPHIWoNjAIgap7DdQl+hbEjzQBKjASEk69p9x6ia4joeCehsNiYDJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147222},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d5b6a99b1421adaed26c6c02d3d30cc10dfe7b5f","scripts":{"build":"tsc","clean":"rm -rf dist","start":"node dist/index.js"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.2","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources and ingests them into the Backstage Software Catalog as **Resource** entities.","directories":{},"_nodeVersion":"22.13.0","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.15.2"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_0.8.0_1779205365841_0.6214891205451483","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"0.8.2","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@0.8.2","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"a8ff4e03fb69efd11fe41912b9b4fb9ec84f0e64","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-0.8.2.tgz","fileCount":50,"integrity":"sha512-P0d99vc8nKxGRfdPQ42pgM8AiraNvblAshVJ9g7k87iz7TIvjukVYRHA3/UUqW/inAYf6nQ5cHWCYcNCAgvwIA==","signatures":[{"sig":"MEYCIQD5dBEHzJtN9lC6X10RiddWDl1cL1Qq+1OKDhl585K0uQIhAIz8rNL5r+06XLwhhVLiFFFJBJXWoYL2e3F6MiGTyd1d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147222},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f11dd543cb7c74334d7c1fd7b34e9d2dac071bf3","scripts":{"build":"tsc","clean":"rm -rf dist","start":"node dist/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b07afb48-2b54-487c-aea8-77fb12fa2dc6"}},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"11.13.0","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources and ingests them into the Backstage Software Catalog as **Resource** entities.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.15.2"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_0.8.2_1782297010557_0.8236705559317508","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"0.8.3","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@0.8.3","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"a15b93b89ee221b5ccaa91b35a847dc49c4b81b0","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-0.8.3.tgz","fileCount":50,"integrity":"sha512-uB5ajrEGXUQLxQ/wyjs3HIqorw8KQ1VAQW68IXAMRfoiVW52oMj9mgKfT0vK0JG0Ej2+cOg33+uN8Hb4k8PIww==","signatures":[{"sig":"MEUCIF8JNLPxuPEPrKWjcrbXBQ0fDR7ZSajEI8XXbELrCSs8AiEAlJkMwOFh+f6e1PPonGGnov7c1LxkyRy78F5xjxab6Ug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147222},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"16c6e18ec136ce383417892a0a7ac7500290eac3","scripts":{"build":"tsc","clean":"rm -rf dist","start":"node dist/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b07afb48-2b54-487c-aea8-77fb12fa2dc6"}},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"11.13.0","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources and ingests them into the Backstage Software Catalog as **Resource** entities.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.15.2"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_0.8.3_1782395768918_0.2005383233810032","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"0.8.4","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@0.8.4","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"496eb0f3d016fb447fd6c0c3524fe723e31f7846","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-0.8.4.tgz","fileCount":50,"integrity":"sha512-iTOhUCMlTlD3OVRUcYW9hAGPYgzwrbYKq91aiOhDW9XKMrPWbP6sxz2VREyo1Y/0HyApF80f9akPpBDNrxuwpA==","signatures":[{"sig":"MEUCIQDB5sJZdlP8k/P32Kaajc/9EGz1C6VpM38+IeeZum413AIgZCVJGigR0r2a7H8ck1/P64jCHrPUI4YTePEjwb1wsR0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147222},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a5e3061aa619d66298948eabe9a780510960405d","scripts":{"build":"tsc","clean":"rm -rf dist","start":"node dist/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b07afb48-2b54-487c-aea8-77fb12fa2dc6"}},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"11.13.0","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources and ingests them into the Backstage Software Catalog as **Resource** entities.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.15.2"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_0.8.4_1782472480384_0.6115355238895022","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"0.8.5","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@0.8.5","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"ddd92db015749a02464797b42ca4b5e465c5ddb1","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-0.8.5.tgz","fileCount":50,"integrity":"sha512-uG34x8XNTo0zlTVH59TRsJblejgDpt1s1x3faaDDZ3Z4hNCIhDN2RwAqHy3DkpeQvfohN5ZwPrRUeMBz+LaqPQ==","signatures":[{"sig":"MEYCIQCE0UxcC9oK+8a3XsKxSq1jfc9Hs12LVvWtpt7f8o3STAIhAJOLWVCpC77HDHBU/5WQM7HJ3VUYFqctuqJuBNB//QmE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147470},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"33eadb9257836d3550eb47d413407891850cc0ab","scripts":{"lint":"eslint \"plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts\"","test":"node --test test/**/*.test.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b07afb48-2b54-487c-aea8-77fb12fa2dc6"}},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"11.13.0","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources and ingests them into the Backstage Software Catalog as **Resource** entities.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.30.1","typescript":"^5.7.3","@types/node":"^22.15.2","@typescript-eslint/parser":"^8.35.1","@typescript-eslint/eslint-plugin":"^8.35.1"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_0.8.5_1782489292584_0.32793062989465893","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc1":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc1","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc1","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"2f2af3e0cf40b0e57ddae6d1b87b6cfdd09d39e9","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc1.tgz","fileCount":58,"integrity":"sha512-XJOdYH5x3YZJm11FFCodgRReLPTGhIVuljJootZ99VGy/oiQKEfmIWpUDlPcsa5axP2v4eOb+k5x7OsKyT/QkQ==","signatures":[{"sig":"MEYCIQCB1QIJDT8I3sE+7xReXTFB0FpGiLr0MQM7s7+8OhB7rQIhAJWIIyetAnKOBw3+L4mZSgbOMH2tARBZhzqhZh0Q43zq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177432},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2e0bea83d27b7cba03e2c401b52bd3364db601c7","scripts":{"build":"tsc","clean":"rm -rf dist","start":"node dist/index.js"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.2","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.13.0","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.3","@types/node":"^22.15.2","@types/express":"^4.17.6"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc1_1786700115555_0.45344462194587076","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc2":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc2","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc2","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"3510f39cf386ab225f4357baabd20f19cd69e553","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc2.tgz","fileCount":58,"integrity":"sha512-6nl1QxJPBp4TS2974iFvWZI4xDW/h07+rcsQninKLKg0h0HI2zqF6NXJz0qTR3l+JsdIcXYv3GydmLwV5a18Dw==","signatures":[{"sig":"MEUCIGzsprZyjZ/J98swiJ2d/QrvI3Mx+iCmzMiUedB/8CEQAiEAtXuGJqIpf2X0ag0NWuZ/whdOuCEJA3N8azfjct2h8B4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209536},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"60d5865db9aa8c29251f5540405e010407d5f91e","scripts":{"build":"tsc","clean":"rm -rf dist","start":"node dist/index.js"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.2","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.13.0","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.3","@types/node":"^22.15.2","@types/express":"^4.17.6"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc2_1787584587061_0.6095999524151092","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc3":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc3","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc3","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"3f1db7f9c74353d45b210139e0b3f8afabaa71c5","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc3.tgz","fileCount":58,"integrity":"sha512-fLlPZ2m/9q1MLvb+ayEx2s5xFJPsp6/A3e0uQ0N82j4Wb3j4Rn5cFZtPyHyYjtGewGMFqDbQ1fSmJWK8znOd4Q==","signatures":[{"sig":"MEUCIQDg4nRNsa0bUUhFUwe0rm106NH4KaRFsHLIjlbi1KIRjwIgVp7HisKi0xGhRnoc8U+H7pgd+crMTN0YLw6POpD2SAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210697},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"60d5865db9aa8c29251f5540405e010407d5f91e","scripts":{"build":"tsc","clean":"rm -rf dist","start":"node dist/index.js"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.2","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.13.0","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.3","@types/node":"^22.15.2","@types/express":"^4.17.6"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc3_1787585052581_0.32700515417780585","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc4":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc4","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc4","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"95b649bbeaa6fe045a7ceffdcaf07f07d4f4aa19","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc4.tgz","fileCount":58,"integrity":"sha512-w+sZMvHUsYzwNlrV+6zqPC8tE2ccIMVTwxaLQfGR+HA38srE61dSZvIDOTdh/YnfJr1xXxcQ+Fl7a1+OXPtiug==","signatures":[{"sig":"MEQCICYAISi4h3+Pt+VssW5Eywh20nPYjrSc2cwf2kiYH0+GAiAZ8EUorfjZ9C/TIICTEKweNYc3MYk1TlSIX4+LZT/1zQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210928},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"82f4d3055142545a1483c2ae3e8aaeffd62e781e","scripts":{"build":"tsc","clean":"rm -rf dist","start":"node dist/index.js"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.3","@types/node":"^22.15.2","@types/express":"^4.17.6"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc4_1787742227066_0.017526906747622917","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc5":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc5","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc5","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"df333df1900a847506d20d7ed39fdca24dc5857f","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc5.tgz","fileCount":58,"integrity":"sha512-ffaqa/QGQ7jmbQDn74NwglLgFpaNII92gvmz7xp9cn65c/GFQA01VQgljWPTYQi7HXmkcIJkvkX4x/6bG89b5Q==","signatures":[{"sig":"MEUCIAK0pnm7nZoU0k1Up/qBCs5fz918fUALoRHpryHfiGImAiEA+cMgf/2bKlIItQDlaNhu+JL2DQ+Dfd0Qwz8sElIr4Ao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211477},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"82f4d3055142545a1483c2ae3e8aaeffd62e781e","scripts":{"build":"tsc","clean":"rm -rf dist","start":"node dist/index.js"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.3","@types/node":"^22.15.2","@types/express":"^4.17.6"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc5_1787747225827_0.5677012350694641","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc6":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc6","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc6","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"e2c4849b0e8a418d02fd6a05b9648a3a0d8c9ff0","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc6.tgz","fileCount":30,"integrity":"sha512-lhnNoKTUXJZS+lvrz4sQ5834x5w8z0s5kGWgTmyOn1KQVh9BFA8W8JXyuSfLIUztRI0qM05iEY1OLOWmUEcdPw==","signatures":[{"sig":"MEQCIAj6/SgEH3WHCbiI1C6Vs/hzYvfReodG6mxcczmlumlaAiBJhthBJ8dLyEK6R2ZZ64ClaH64WmU9f6npCjTh5iZlnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123780},"main":"dist/index.js","_from":"file:package.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b07afb48-2b54-487c-aea8-77fb12fa2dc6"}},"_resolved":"/home/runner/work/backstage-plugin-catalog-gcp/backstage-plugin-catalog-gcp/package.tgz","_integrity":"sha512-lhnNoKTUXJZS+lvrz4sQ5834x5w8z0s5kGWgTmyOn1KQVh9BFA8W8JXyuSfLIUztRI0qM05iEY1OLOWmUEcdPw==","repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"11.17.0","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc6_1787828704995_0.28607695787493226","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc7":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc7","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc7","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"bb0ddcfcf947243948e038d90ea184a300a4bb5b","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc7.tgz","fileCount":58,"integrity":"sha512-C1ZUmb+ffq/k0Y40H8XaTsb+TUOe9vNlJtFX10yWl3ybqUBwTtfXtwy8ujG95tb2a/ZS1f5M7HP9wvP4PCj3VA==","signatures":[{"sig":"MEUCIQCgtgnU4L/AYt4YChmyl1x8ZaUK8syfqej0q3sYh17ulwIgFlMPpFtdWTbQdziJwaHeEiZ25C12bC/Sdal2vaWD7qI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223463},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0251126493164bce44ac39a7e77261ddb9443b99","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc7_1787834495522_0.054065941098778936","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc8":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc8","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc8","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"4d28fbb61ad1f446666fa5ff616c5d4807bbbe85","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc8.tgz","fileCount":58,"integrity":"sha512-56dPTK5bb9Nr5PqgFN34ctmCEhghVGPhDVE9nK4Xz1EqZPkJoLTVnWt3FBs8MkmHS+7BXE0WcIVGTNHmQQcLkQ==","signatures":[{"sig":"MEUCIQDets/RT0aiRoG9+wDXUKyM77gJaKJls0gy7d6BIm//2gIgc5ha/WP51Jnx+7IKbPNOrpMJcKASND4iWXnA3AxHQnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223463},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f3ec80cd021227a204816f635a7a6d6b61d2c5b9","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc8_1787838514292_0.02870780877739998","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc9":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc9","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc9","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"129ad72a29b7c54fce43fc946395e3021ad0e2e6","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc9.tgz","fileCount":58,"integrity":"sha512-xM49gFAx0NcC+X7EtUXO2Mf9Kjx5KtPzwhIdhpK+CPQdnGigqJrtZABCdEr2RYvjI+60GcDC03HHGxZzFrUwdQ==","signatures":[{"sig":"MEYCIQCkRBR2VvwI7HzBGkopZWNyDCOWIAH9DGHmktbrmmdqZwIhAKZG7kAtZPpp3zqvTiS11p20o9gV5fSCGa+Eh/ISde7L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233056},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f3ec80cd021227a204816f635a7a6d6b61d2c5b9","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc9_1787839214629_0.9613262404615674","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc10":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc10","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc10","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"2710d8ab8a884c4aeca7e1502afda9a8721cdf87","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc10.tgz","fileCount":58,"integrity":"sha512-vV+1NgF0GbA8+q98HfqLMggXRMHt5ACGktTOtfdjUvUvx3wnUcwlZBsNR3aTZWLVRADYZoTFYQSgRfxdV7YVmA==","signatures":[{"sig":"MEYCIQC+ClShGnOAHkUzkaEKZzc/PloEvWm96fjJVFsgUwM7dgIhAN7Uc6ATEz/CXb5xS0/Xqfn1nuCtEAkyfmWtIbzn/YOK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235718},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"81bf0b5b0de875e6e3e479dceeac30b1c4b040ae","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"googleapis":"^144.0.0","google-auth-library":"^9.15.1","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc10_1787842022406_0.7176379950988603","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc11":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc11","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc11","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"cfc44592848ebfa62e592772afa3e9a8379d578b","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc11.tgz","fileCount":58,"integrity":"sha512-CJRaG9+KP2j9ifH5EsceSV7xjFJmEGFTQOMlRHw4QzfeKznnQ4N15NNUf5TJ7cvnRjUKBYbIEbptLaK/ZS4Rjw==","signatures":[{"sig":"MEUCIQDjuny8Q4vGIVwPAedJRTfq3qCoNNpl/d7FtWTKH7Q3fgIgaEiOoTBRrFiTeDpdSWX6RvzN8WtG1LzPUDS3ojxIzzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235808},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5f5f50567953c7a6607de09237fc3ebee93aef07","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"google-auth-library":"^9.15.1","@googleapis/cloudasset":"^9.0.0","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc11_1787846245883_0.5427213568167164","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc12":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc12","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc12","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"55ee7b6558f3751766fc97a07e217dd98abb7ef2","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc12.tgz","fileCount":58,"integrity":"sha512-K8h/GEeBE3LY29slG9zXlpDJ8x6zj6THmYa/s1PiJQ1EBgY0ZD0Qp3wQnEETcU/LRmhVDDF0Irmsx5OkXId8/w==","signatures":[{"sig":"MEUCIG0RF8IR5hC0nhUG6ci7k7L/9YOk3KrG91aSxYsrFzAxAiEA3MfqtALuOIc3zaqWdAOGQ2ya4xL9r7D10LvwLfOz4hs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDk44SEujQRlJ62uvw7DgIXLaXimNGikj9Ke2cySiXgtgIhAJAT9pMP2Ev1q4wh0Zol69ey4hDo2eHfb41qUo1Z5j/5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246886},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"baedec8c86c8e742e5258d428f1a4b68a7480096","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"google-auth-library":"^9.15.1","@googleapis/cloudasset":"^9.0.0","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc12_1788964713104_0.6339816269364169","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc13":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc13","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc13","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"48d5372d96d6ab0a004459f168eb36f44fe07751","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc13.tgz","fileCount":58,"integrity":"sha512-TVcXmwDfwAJKLjjg3CVFikuUmmjKAXgT+S7k93OJHI9H0qSzUmxrv07EheV19ZjM5z2TGUfWxPwsNEyvGcFupw==","signatures":[{"sig":"MEYCIQCL9Glf9qIrAhD87uZXRZ/W+Lbl1iD8d7wH8US2bOavTgIhAKkqGtx3Nt27bZwIqEmWxNd8v/JX6iXRlPAPNJZ7UDhm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB2NNCMmmDSHsanNV7xt7bhVybrMmSAkrP0umgucSMfXAiAvkYu/NgpjNLJxUdEyqZ+D3u/fJKtPpNacouekUQaf4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253704},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"558ce0077e4857ef383ce57f81721513dbc20c25","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"google-auth-library":"^9.15.1","@googleapis/cloudasset":"^9.0.0","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc13_1789034010574_0.4347709928663519","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc14":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc14","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc14","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"592e8c389c13d7d6db6b3a2c75a748777f591737","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc14.tgz","fileCount":58,"integrity":"sha512-vOEXLLvM6pQfbT2iBHUfrphNxlI1fzbL0uXLUnKE5Uk+yWjYJRUm/Pio9NHMzYPb+lGviy2sUy7OBaBfkLBuuA==","signatures":[{"sig":"MEYCIQCZEjQUEdPnb9fk3ff6IwIvf0xu/6v8Yh4uMLJzcYW2lwIhAIJ621LU6w7xVZ7pf+4tKreX0/6Savw25c1L9auZ/1Kw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCb3k50LfXiv0Q5F7Ls3K/rBkkVQFDD/cHuvcgG0AA/YAIgdeWBSUTANdADFddB/3WIg8NWp8aBciYHohee4yqic6c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255217},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"229b6bbbcbc04256d51af3d2393333fbe14de9fe","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"google-auth-library":"^9.15.1","@googleapis/cloudasset":"^9.0.0","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc14_1789045597064_0.43340355359465854","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc15":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc15","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc15","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"1f95d7e8e2636a5ef08b5a4cb19325273e7a5284","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc15.tgz","fileCount":58,"integrity":"sha512-JYv6gc/JlHq9h8WZwZE/HhmMETzB3D/qb4j4qtlfu7txldHuJuUQCTzO1k2HxQqNwIVzpS5EF2XZ/9SQNwIbcQ==","signatures":[{"sig":"MEUCIQCEE5FKMVLoH6pqsevIxZxPcJlZXuMxCdyLGFCQazlmOgIgGVJSedWD3WEE6sxSmoguUeXHdVX/TCafXyOztbCE0c4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDt/0xBpkDTIayvPNYW10L1gAx/ztvPgMNVWO1qlsCW2QIhAOv63ULguxN6ELr7OA6whrNey5QuYcQ62/RZkwYpIa3D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257320},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e9d902368b6f5ae5f8a21900e0740c6c5aa22886","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"google-auth-library":"^9.15.1","@googleapis/cloudasset":"^9.0.0","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc15_1789047798709_0.005207330607856386","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc16":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc16","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc16","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"825cb8da1f1b79e929f0833b16097ba82d779685","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc16.tgz","fileCount":58,"integrity":"sha512-1z8mxNJ457eavWhWtZ84S64rO0ZLuU2swNVk1IJkwD9U07tMIl4qumSuqabcNWtGo2iQdwi4tBIVOszoV8UNVA==","signatures":[{"sig":"MEQCIHkeNrTo6NaxXBCCVI812D17nKXVmtmx/efZsOr+iNuRAiAo9/JVMxUkJzetXd1rI/vecRgAXQzGggHGMovnvpcLYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAjrLuW3tmKqxNDjA5yGLMDkiyDH3T+q9A12mdx4sgDAAiEA595YImfhDNk/xHasDoXubv37Gm/uyxvEj2SYt63xaR8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257598},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"23c57160edd04c6fae75b6c2a4234a5bc5699c39","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"google-auth-library":"^9.15.1","@googleapis/cloudasset":"^9.0.0","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc16_1789486957315_0.8447179992636058","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc17":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc17","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc17","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"259b8a4ae3885190e686bd0a7b95c1d377fde696","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc17.tgz","fileCount":58,"integrity":"sha512-im5ztJ4kvk5BeZS0jrykhgW1WnjOLPtQgq03JxzjDe88VzmWNca0YR7N6YtWfdr0tjl+AU3fZjY0i0wm+EsRpg==","signatures":[{"sig":"MEUCIHceEGID8qhnGQtZaXqnVMLoIaRVgVmlOEmXAowYN2YSAiEAsOiqrjEgkwE+RxMybSrOzIYI7FehSx7hWzCCVHBCAj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGhinyjMwXL6fxf9yJCxXT0nLRTIbqUbeOxrNczvot3LAiEA3OrPU+ZKOEMd5CSstuByKXn0KtDtRPe2A/QzIdtbXbQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258135},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"1502a2f2ad77c87c14c7185c2dce3d17d4e0b06e","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"google-auth-library":"^9.15.1","@googleapis/cloudasset":"^9.0.0","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc17_1789633764592_0.26994985388219783","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc18":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc18","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc18","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"7ca9310dd7eb4eb853370d57a98f1df8bf052ffa","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc18.tgz","fileCount":58,"integrity":"sha512-b6uYJGjVrXJvN58EfzVopnx1RpZdl6kdoaqyUZy03NNujwRMYcB613ljWAN76/7xlzGiAH8i1gTYbFkcuZELmQ==","signatures":[{"sig":"MEYCIQD/2Luwws7oYZ0XaT4ZD3s27z5rXNS/hXkPXhyiJTNA3wIhAIhspX4fkO0RrplASncYDqb3OS/p8pEoT75lkQSFHnQs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHpRb6LNkFmlyH3P69hg3vfES4QMAU9vTa+9Sj+VB8KHAiEAnByCOlg6dXkcIZS1bpvSNZGkXSVfZxfzF1L1nEYR24o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260514},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"1502a2f2ad77c87c14c7185c2dce3d17d4e0b06e","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"google-auth-library":"^9.15.1","@googleapis/cloudasset":"^9.0.0","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc18_1789735455645_0.6020566665045124","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc19":{"name":"@nospt/backstage-plugin-catalog-gcp","version":"1.0.0-rc19","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0-rc19","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"3a0efb3f172de2ca1734c0ae206dc27458d53433","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0-rc19.tgz","fileCount":58,"integrity":"sha512-mBP79e24t7JszjTXGzWqDNEzGVYJXlx5u1kL2OKazhu+nCf26Vv1aYnVJ+qq8epGJdu14PxlrxlmvsYp1dqyhQ==","signatures":[{"sig":"MEYCIQD3hTL0xxkAsxAE97izLFy3SgVyNJNMMNZBbqrL0TYrnwIhALZifBc/NDTgyz2o4J+O1EeYEy5cKNsD2clsI8PZzfiD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDfpPhIu/TW58uqo6rJK9HChaDvfv67eCZjej/csTJ6agIgEkrizvjbM45wYEKEHR4wAgJNND2PRq97Q/Cyh3dRiV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261100},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"1502a2f2ad77c87c14c7185c2dce3d17d4e0b06e","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"_npmUser":{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},"repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"10.9.7","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"google-auth-library":"^9.15.1","@googleapis/cloudasset":"^9.0.0","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0-rc19_1789736345450_0.766089908424618","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"_id":"@nospt/backstage-plugin-catalog-gcp@1.0.0","bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"dist":{"shasum":"7a3026037f6d1584608140e36cf9119d0c5553af","tarball":"https://registry.npmjs.org/@nospt/backstage-plugin-catalog-gcp/-/backstage-plugin-catalog-gcp-1.0.0.tgz","fileCount":30,"integrity":"sha512-1H9jabDvY+Hjcp02RezztBOWD8H+nvd2EUohw8qWTcS2EACz8zbIzUJPI2TieOBRDZP/tjTrbapcsFmIyId7/Q==","signatures":[{"sig":"MEUCICEGqXnztoIYqtCadV0hRjmO4i7apjjoB9ZLsmck2AfxAiEA9cso5o8PLtQYgFKfLKpVrrji2+gIbRSfafuhn4AWuTw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFD05P+yQ2Z20BQ2TWX6Tr71WMZ/PqdCwWO8Iww4/nlHAiBfGCRiS5kRg9Z01LIZH//srzNDoBmDXp9/LrWXWIko0A=="}],"unpackedSize":164094},"main":"dist/index.js","name":"@nospt/backstage-plugin-catalog-gcp","_from":"file:package.tgz","types":"dist/index.d.ts","author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","scripts":{"lint":"eslint 'plugins/backstage-plugin-catalog-gcp-backend/src/**/*.ts'","test":"jest","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:watch":"jest --watch"},"version":"1.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b07afb48-2b54-487c-aea8-77fb12fa2dc6"}},"homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","_resolved":"/home/runner/work/backstage-plugin-catalog-gcp/backstage-plugin-catalog-gcp/package.tgz","_integrity":"sha512-1H9jabDvY+Hjcp02RezztBOWD8H+nvd2EUohw8qWTcS2EACz8zbIzUJPI2TieOBRDZP/tjTrbapcsFmIyId7/Q==","repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"_npmVersion":"11.19.0","description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","directories":{},"maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"google-auth-library":"^9.15.1","@googleapis/cloudasset":"^9.0.0","@backstage/catalog-model":"^1.7.7","@backstage/backend-plugin-api":"^1.9.0","@backstage/plugin-catalog-node":"^1.20.1"},"_hasShrinkwrap":false,"packageManager":"yarn@4.13.0","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","express":"^4.21.2","ts-jest":"^29.2.5","supertest":"^6.3.4","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.15.2","@types/express":"^4.17.6","@types/supertest":"^6.0.2","@typescript-eslint/parser":"^8.18.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"express":"^4.17.0 || ^5.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/backstage-plugin-catalog-gcp_1.0.0_1790001255405_0.3443376205390656"}}},"time":{"created":"2026-05-19T15:42:45.684Z","modified":"2026-09-21T14:34:15.707Z","0.8.0":"2026-05-19T15:42:46.016Z","0.8.2":"2026-06-24T10:30:10.699Z","0.8.3":"2026-06-25T13:56:09.070Z","0.8.4":"2026-06-26T11:14:40.517Z","0.8.5":"2026-06-26T15:54:52.718Z","1.0.0-rc1":"2026-08-14T09:35:15.708Z","1.0.0-rc2":"2026-08-24T15:16:27.203Z","1.0.0-rc3":"2026-08-24T15:24:12.728Z","1.0.0-rc4":"2026-08-26T11:03:47.230Z","1.0.0-rc5":"2026-08-26T12:27:05.949Z","1.0.0-rc6":"2026-08-27T11:05:05.152Z","1.0.0-rc7":"2026-08-27T12:41:35.659Z","1.0.0-rc8":"2026-08-27T13:48:34.429Z","1.0.0-rc9":"2026-08-27T14:00:14.771Z","1.0.0-rc10":"2026-08-27T14:47:02.552Z","1.0.0-rc11":"2026-08-27T15:57:26.037Z","1.0.0-rc12":"2026-09-09T14:38:33.187Z","1.0.0-rc13":"2026-09-10T09:53:30.663Z","1.0.0-rc14":"2026-09-10T13:06:37.150Z","1.0.0-rc15":"2026-09-10T13:43:18.834Z","1.0.0-rc16":"2026-09-15T15:42:37.410Z","1.0.0-rc17":"2026-09-17T08:29:24.672Z","1.0.0-rc18":"2026-09-18T12:44:15.737Z","1.0.0-rc19":"2026-09-18T12:59:05.543Z","1.0.0":"2026-09-21T14:34:15.492Z"},"bugs":{"url":"https://github.com/nosportugal/backstage-plugin-catalog-gcp/issues"},"author":{"name":"Ygor Xavier","email":"ygor.xavier@parceiros.nos.pt"},"license":"MIT","homepage":"https://github.com/nosportugal/backstage-plugin-catalog-gcp#readme","repository":{"url":"git+https://github.com/nosportugal/backstage-plugin-catalog-gcp.git","type":"git"},"description":"A [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.","maintainers":[{"name":"dsiteixeira","email":"daniel.teixeira@parceiros.nos.pt"},{"name":"marcoaureliox","email":"marcoaureliogpina@gmail.com"},{"name":"calexandre","email":"clpalexandre@gmail.com"},{"name":"jfhs","email":"jofrank1998@proton.me"},{"name":"kkthx","email":"kaphwor@sapo.pt"},{"name":"yrxavier","email":"ygor.xavier@parceiros.nos.pt"},{"name":"paparuco","email":"ricardo.calcado10@gmail.com"}],"readme":"# backstage-plugin-catalog-gcp\n\nA [Backstage](https://backstage.io) backend plugin that automatically discovers GCP resources via the **Cloud Asset Inventory API** and ingests them into the Backstage Software Catalog as `Resource` and `System` entities.\n\n## Supported Resource Types\n\nAll types are enabled by default (`DEFAULT_ASSET_TYPES`), except `secretmanager.googleapis.com/Secret` which is excluded by default via `excludeAssetTypes` (see [Excluding asset types](#excluding-asset-types)). Override the list with `assetTypes` in config to include only what you need.\n\n### Messaging\n\n| GCP Asset Type | `spec.type` |\n| --- | --- |\n| `pubsub.googleapis.com/Topic` | `message-broker` |\n\n### Data & Storage\n\n| GCP Asset Type | `spec.type` |\n| --- | --- |\n| `storage.googleapis.com/Bucket` | `storage` |\n| `bigquery.googleapis.com/Dataset` | `database` |\n| `sqladmin.googleapis.com/Instance` | `database` |\n| `firestore.googleapis.com/Database` | `database` |\n| `file.googleapis.com/Instance` | `storage` |\n| `redis.googleapis.com/Instance` | `cache` |\n| `dataproc.googleapis.com/Cluster` | `data-processing` |\n| `secretmanager.googleapis.com/Secret` | `secret` |\n\n### Runtime\n\n| GCP Asset Type | `spec.type` |\n| --- | --- |\n| `run.googleapis.com/Service` | `serverless` |\n| `container.googleapis.com/Cluster` | `container-cluster` |\n| `cloudfunctions.googleapis.com/CloudFunction` | `serverless` |\n| `cloudfunctions.googleapis.com/Function` | `serverless` |\n| `compute.googleapis.com/Instance` | `virtual-machine` |\n\n### Artifact Registry\n\n| GCP Asset Type | `spec.type` |\n| --- | --- |\n| `artifactregistry.googleapis.com/Repository` | `artifact-registry` |\n\n### AI & ML (Vertex AI)\n\n| GCP Asset Type | `spec.type` | Covers |\n| --- | --- | --- |\n| `aiplatform.googleapis.com/ReasoningEngine` | `ai-agent` | Agent Engine / Agent Platform (Gemini-based agents) |\n| `aiplatform.googleapis.com/Model` | `ai-model` | Model Garden registered and fine-tuned models |\n| `aiplatform.googleapis.com/Endpoint` | `ai-endpoint` | Model serving endpoints (including Gemini model deployments) |\n\n---\n\n## Installation\n\n```bash\nyarn add @nospt/backstage-plugin-catalog-gcp\n```\n\n### Register in your backend\n\n```typescript\n// packages/backend/src/index.ts\nimport { createBackend } from '@backstage/backend-defaults';\nimport { catalogModuleGcpEntityProviders } from '@nospt/backstage-plugin-catalog-gcp';\n\nconst backend = createBackend();\nbackend.add(import('@backstage/plugin-catalog-backend'));\nbackend.add(catalogModuleGcpEntityProviders);\nbackend.start();\n```\n\n### Add the Sync button to your entity pages (optional)\n\nInstall the companion React package:\n\n```bash\nyarn add @nospt/backstage-plugin-catalog-gcp-react\n```\n\nThen add `GcpSyncButton` to your entity page layout (e.g. `packages/app/src/components/catalog/EntityPage.tsx`):\n\n```tsx\nimport { GcpSyncButton } from '@nospt/backstage-plugin-catalog-gcp-react';\n\n// Inside your resource entity page layout:\n<EntityLayout.Route path=\"/\" title=\"Overview\">\n  <Grid container spacing={3}>\n    <Grid item xs={12} md={6}>\n      <EntityAboutCard variant=\"gridItem\" />\n    </Grid>\n    <Grid item>\n      <GcpSyncButton />\n    </Grid>\n  </Grid>\n</EntityLayout.Route>\n```\n\nThe button is self-hiding — it only renders on entities that have the `cloud.google.com/asset-type` annotation (i.e. entities ingested by this plugin).\nClicking it calls `POST /api/catalog/gcp/providers/:providerId/refresh` on the backend, which triggers an immediate full sync for that provider instance.\n\n---\n\n## Configuration\n\nAdd provider configuration under `catalog.providers.gcp.assetInventory` in your `app-config.yaml`:\n\n```yaml\ncatalog:\n  providers:\n    gcp:\n      assetInventory:\n          production:\n            scope: organizations/YOUR_ORG_ID   # or projects/ID or folders/ID\n            ownerLabel: owner\n            defaultOwner: group:default/platform-team  # used when the label is missing\n            systemLabel: system\n            lifecycleLabel: environment\n            componentLabel: component\n            ingestProjects: true               # emit GCP projects as System entities\n            schedule:\n              frequency: { hours: 1 }\n              timeout: { minutes: 10 }\n              initialDelay: { seconds: 30 }\n```\n\n`assetInventory` is a map keyed by provider ID. Configuration overlays can\noverride only a provider's `scope` or `schedule` without copying its shared\nsettings. The older array form remains supported for backwards compatibility.\n\n### Scope options\n\n| Value | Discovers |\n| --- | --- |\n| `organizations/ORG_ID` | All resources across the entire organization |\n| `folders/FOLDER_ID` | All resources within a folder hierarchy |\n| `projects/PROJECT_ID` | Resources within a single project |\n\n### All configuration options\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `scope` | `string` | **required** | GCP scope to search |\n| `ownerLabel` | `string` | `\"owner\"` | GCP label key → `spec.owner` |\n| `defaultOwner` | `string` | `\"unknown\"` | `spec.owner` when the owner label is absent; emitted verbatim (e.g. `group:default/platform-team`) |\n| `systemLabel` | `string` | `\"system\"` | GCP label key → `spec.system` (falls back to project ID) |\n| `lifecycleLabel` | `string` | `\"environment\"` | GCP **project** label key → `spec.lifecycle` (inherited by all resources in the project) |\n| `componentLabel` | `string` | `\"component\"` | GCP label key → `spec.dependsOn` Component relation |\n| `organizationPrefix` | `string` | unset | Annotation prefix for GCP labels that can't be emitted as-is onto `metadata.labels` (see [Label Conventions](#label-conventions)) |\n| `assetTypes` | `AssetTypeMapping[]` | `DEFAULT_ASSET_TYPES` | Asset types to ingest and their Backstage `spec.type` mapping |\n| `excludeAssetTypes` | `string[]` | `[\"secretmanager.googleapis.com/Secret\"]` | GCP asset types subtracted from `assetTypes` (custom or default) — see below |\n| `resourceFilter` | `ResourceTypeFilter[]` | — | Per-asset-type include/exclude name filters (see below) |\n| `ingestProjects` | `boolean` | `true` | Emit GCP projects as `System` entities |\n| `disabled` | `boolean` | `false` | Skip this provider instance |\n| `schedule.frequency` | duration | `{ hours: 1 }` | How often to re-ingest |\n| `schedule.timeout` | duration | `{ minutes: 5 }` | Max time per refresh cycle |\n| `schedule.initialDelay` | duration | `{ seconds: 15 }` | Wait before first refresh |\n\n### Overriding asset types\n\n```yaml\ncatalog:\n  providers:\n    gcp:\n      assetInventory:\n        - scope: organizations/123456789\n          assetTypes:\n            - assetType: run.googleapis.com/Service\n              resourceType: serverless\n            - assetType: container.googleapis.com/Cluster\n              resourceType: container-cluster\n            - assetType: aiplatform.googleapis.com/ReasoningEngine\n              resourceType: ai-agent\n          schedule:\n            frequency: { hours: 1 }\n            timeout: { minutes: 10 }\n            initialDelay: { seconds: 30 }\n```\n\n### Excluding asset types\n\n`excludeAssetTypes` subtracts entries from `assetTypes` by GCP asset type — whether that list came from config or `DEFAULT_ASSET_TYPES` — so you don't have to copy every other default entry by hand just to drop one.\n\nIt defaults to `[\"secretmanager.googleapis.com/Secret\"]`, so Secret Manager secrets are not ingested unless a config explicitly re-includes them:\n\n```yaml\ncatalog:\n  providers:\n    gcp:\n      assetInventory:\n        - scope: organizations/123456789\n          excludeAssetTypes: []   # ingest secrets too\n```\n\nThis also composes with a custom `assetTypes` list, e.g. to keep every default except one:\n\n```yaml\ncatalog:\n  providers:\n    gcp:\n      assetInventory:\n        - scope: organizations/123456789\n          excludeAssetTypes:\n            - secretmanager.googleapis.com/Secret\n            - firestore.googleapis.com/Database\n```\n\n### Filtering resources by type (include / exclude)\n\nUse `resourceFilter` to apply name-pattern filters **per asset type**.\nEach entry targets one GCP asset type. Asset types without an entry are always fully ingested.\nPatterns are matched **case-insensitively** against the resource's display name and support `*` (any characters) and `?` (single character) as wildcards.\n\n`exclude` is evaluated after `include`. The filter does **not** apply to GCP Project entities (controlled by `ingestProjects`).\n\n```yaml\ncatalog:\n  providers:\n    gcp:\n      assetInventory:\n        - scope: organizations/123456789\n          resourceFilter:\n            - assetType: run.googleapis.com/Service\n              include:            # only ingest Cloud Run services matching these patterns\n                - \"prod-*\"\n                - \"staging-*\"\n            - assetType: storage.googleapis.com/Bucket\n              exclude:            # ingest all buckets except backup/temp ones\n                - \"*-backup\"\n                - \"*-temp\"\n            - assetType: aiplatform.googleapis.com/Model\n              include:\n                - \"gemini-*\"\n              exclude:\n                - \"*-deprecated\"\n          schedule:\n            frequency: { hours: 1 }\n            timeout: { minutes: 10 }\n            initialDelay: { seconds: 30 }\n```\n\n**Notes:**\n- `include` and `exclude` can be combined on the same entry — `exclude` is applied last.\n- A resource type **not listed** in `resourceFilter` is always fully ingested (no filter applied).\n- To completely skip a resource type, add it to `excludeAssetTypes` instead.\n\n---\n\n## Authentication\n\nThe plugin uses **Application Default Credentials (ADC)** with the `cloud-platform` scope:\n\n```\nhttps://www.googleapis.com/auth/cloud-platform\n```\n\nCloud Asset Inventory's `SearchAllResources` rejects the narrower\n`cloud-platform.read-only` scope with a 403 `ACCESS_TOKEN_SCOPE_INSUFFICIENT`,\neven when `roles/cloudasset.viewer` is granted correctly.\nThe OAuth scope only bounds what a token is permitted to attempt — actual\naccess is still governed by IAM, so a service account holding only\n`roles/cloudasset.viewer` cannot write anything.\n\nFor local development:\n\n```bash\ngcloud auth application-default login\n```\n\nIn production (GKE, Cloud Run, etc.), use **Workload Identity** or assign the required roles to the instance service account.\n\n### Required IAM — single role for all resource types\n\nGrant `roles/cloudasset.viewer` on the same resource as your `scope`:\n\n```bash\n# Enable the API (once per project/org)\ngcloud services enable cloudasset.googleapis.com --project YOUR_PROJECT_ID\n\n# Grant the role at org level (covers all projects)\ngcloud organizations add-iam-policy-binding YOUR_ORG_ID \\\n  --member=\"serviceAccount:YOUR_SA@YOUR_PROJECT.iam.gserviceaccount.com\" \\\n  --role=\"roles/cloudasset.viewer\"\n```\n\n---\n\n## Label Conventions\n\nGCP resource labels drive entity metadata in Backstage.\n\n| GCP Label Key | Set on | Backstage Field | Example | Notes |\n| --- | --- | --- | --- | --- |\n| `owner` | resource or project | `spec.owner` | `team-platform` | Defaults to `unknown` if absent |\n| `system` | resource | `spec.system` | `payments` | Falls back to GCP project ID |\n| `environment` | **project** | `spec.lifecycle` | `production` | Set once on the project; inherited by all resources |\n| `component` | resource | `spec.dependsOn` | `checkout-api` | Creates `component:default/checkout-api` relation |\n\nEach GCP label is emitted in **exactly one** place, **unmodified**: a label whose key and value already satisfy Backstage's rules is set on `metadata.labels` as-is; otherwise its raw value is mirrored verbatim onto an `<organizationPrefix>/label-<key>` annotation (never `cloud.google.com/`, which is reserved for actual Cloud Asset Inventory facts). With no `organizationPrefix` configured, such a label is dropped rather than emitted as a modified value or duplicated across both maps — see [Entity Structure](#entity-structure) below.\n\n```bash\n# Set lifecycle on the project (inherited by all resources in the project)\ngcloud projects update my-project \\\n  --update-labels=environment=production,owner=team-platform\n\n# Set labels on individual resources\ngcloud run services update my-service \\\n  --update-labels=owner=team-platform,system=payments,component=checkout-api \\\n  --region=europe-west1\n\ngcloud pubsub topics update my-topic \\\n  --update-labels=owner=team-data,system=event-bus\n\ngcloud container clusters update my-cluster \\\n  --update-labels=owner=team-infra,system=k8s \\\n  --region=europe-west1\n```\n\n---\n\n## Entity Structure\n\n### GCP Projects → `System`\n\n```yaml\napiVersion: backstage.io/v1alpha1\nkind: System\nmetadata:\n  name: my-project-id             # sanitized GCP project ID\n  title: My Project Display Name\n  annotations:\n    cloud.google.com/asset-type: \"cloudresourcemanager.googleapis.com/Project\"\n    cloud.google.com/project-number: \"123456789\"\n    cloud.google.com/organization-id: \"987654321\"\n    cloud.google.com/resource-name: \"//cloudresourcemanager.googleapis.com/projects/my-project-id\"\nspec:\n  owner: group:team-platform\n  lifecycle: production\n```\n\n### GCP Resources → `Resource`\n\n```yaml\napiVersion: backstage.io/v1alpha1\nkind: Resource\nmetadata:\n  name: my-cloud-run-service\n  title: my-cloud-run-service\n  annotations:\n    cloud.google.com/asset-type: \"run.googleapis.com/Service\"\n    cloud.google.com/project-number: \"123456789\"\n    cloud.google.com/location: \"europe-west1\"\n    cloud.google.com/resource-name: \"//run.googleapis.com/projects/my-project-id/...\"\nspec:\n  type: serverless\n  owner: group:team-platform   # from resource label, falls back to project label\n  lifecycle: production        # inherited from project's environment label\n  system: my-project-id        # from system label, falls back to project ID\n  dependsOn:\n    - component:default/checkout-api\n```\n\n### Annotations\n\nAll entities receive these annotations regardless of resource type; see [ADR 0006](docs/adr/0006-cloud-google-com-annotation-contract.md) and [Configuration → Entity Annotations](docs/configuration.md#entity-annotations) for the full list and one GCP label caveat:\n\n| Annotation | Source |\n| --- | --- |\n| `cloud.google.com/asset-type` | GCP asset type string |\n| `cloud.google.com/project-number` | Raw GCP project number (extracted from `result.project`) |\n| `cloud.google.com/organization-id` | Raw GCP organization number |\n| `cloud.google.com/folder-ids` | Comma-joined GCP folder numbers |\n| `cloud.google.com/location` | Region / zone |\n| `cloud.google.com/resource-name` | Full GCP resource name |\n| `cloud.google.com/parent-asset-type` / `cloud.google.com/parent-resource-name` | Immediate parent resource |\n| `cloud.google.com/create-time` | Resource creation timestamp |\n| `cloud.google.com/tag-<key>` | Directly-attached GCP resource-manager tags |\n\nGCP labels are organization-defined, not a Cloud Asset Inventory fact, so they never use `cloud.google.com/` — see [Label Conventions](#label-conventions) above.\n\n---\n\n## Documentation\n\n- [Configuration Reference](docs/configuration.md)\n- [Architecture](docs/architecture.md)\n\n---\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}