@drodil/backstage-plugin-catalog-backend-module-qeta 3.36.2 → 3.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -48,7 +48,7 @@ class CatalogEntityLinkProcessor {
|
|
|
48
48
|
this.logger.warn(`Failed to parse cached entity links: ${e}`);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
this.logger.
|
|
51
|
+
this.logger.debug(`Fetching entity links from Qeta`);
|
|
52
52
|
const credentials = await this.auth.getOwnServiceCredentials();
|
|
53
53
|
const { token } = await this.auth.getPluginRequestToken({
|
|
54
54
|
onBehalfOf: credentials,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CatalogEntityLinkProcessor.cjs.js","sources":["../../src/processors/CatalogEntityLinkProcessor.ts"],"sourcesContent":["import { CatalogProcessor } from '@backstage/plugin-catalog-node';\nimport { Entity, stringifyEntityRef } from '@backstage/catalog-model';\nimport {\n AuthService,\n CacheService,\n DiscoveryService,\n LoggerService,\n} from '@backstage/backend-plugin-api';\nimport {\n EntityLinks,\n QetaApi,\n QetaClient,\n} from '@drodil/backstage-plugin-qeta-common';\n\nexport class CatalogEntityLinkProcessor implements CatalogProcessor {\n private readonly client: QetaApi;\n\n constructor(\n private readonly auth: AuthService,\n private readonly cache: CacheService,\n private readonly logger: LoggerService,\n discovery: DiscoveryService,\n ) {\n this.client = new QetaClient({ discoveryApi: discovery });\n }\n\n getProcessorName(): string {\n return 'CatalogEntityLinkProcessor';\n }\n\n async postProcessEntity(entity: Entity): Promise<Entity> {\n const entityRef = stringifyEntityRef(entity);\n const entityLinks = await this.getEntityLinks();\n const links = entityLinks\n .filter(link => link.entityRef === entityRef)\n .map(link => link.links)\n .flat();\n if (!links || links.length === 0) {\n return entity;\n }\n\n const existingLinks = entity.metadata.links ?? [];\n const uniqueLinks = [...existingLinks].filter(link => link.type !== 'qeta');\n for (const link of links) {\n if (!existingLinks.find(l => l.url === link.url)) {\n uniqueLinks.push(link);\n }\n }\n\n this.logger.debug(\n `Adding total of ${uniqueLinks.length}, new ${\n uniqueLinks.length - existingLinks.length\n } links to entity ${entityRef}`,\n );\n\n return {\n ...entity,\n metadata: {\n ...entity.metadata,\n links: uniqueLinks,\n },\n };\n }\n\n private async getEntityLinks(): Promise<EntityLinks[]> {\n const cached = await this.cache.get<string>('qeta-entity-links');\n if (cached) {\n try {\n return JSON.parse(cached);\n } catch (e) {\n this.logger.warn(`Failed to parse cached entity links: ${e}`);\n }\n }\n\n this.logger.
|
|
1
|
+
{"version":3,"file":"CatalogEntityLinkProcessor.cjs.js","sources":["../../src/processors/CatalogEntityLinkProcessor.ts"],"sourcesContent":["import { CatalogProcessor } from '@backstage/plugin-catalog-node';\nimport { Entity, stringifyEntityRef } from '@backstage/catalog-model';\nimport {\n AuthService,\n CacheService,\n DiscoveryService,\n LoggerService,\n} from '@backstage/backend-plugin-api';\nimport {\n EntityLinks,\n QetaApi,\n QetaClient,\n} from '@drodil/backstage-plugin-qeta-common';\n\nexport class CatalogEntityLinkProcessor implements CatalogProcessor {\n private readonly client: QetaApi;\n\n constructor(\n private readonly auth: AuthService,\n private readonly cache: CacheService,\n private readonly logger: LoggerService,\n discovery: DiscoveryService,\n ) {\n this.client = new QetaClient({ discoveryApi: discovery });\n }\n\n getProcessorName(): string {\n return 'CatalogEntityLinkProcessor';\n }\n\n async postProcessEntity(entity: Entity): Promise<Entity> {\n const entityRef = stringifyEntityRef(entity);\n const entityLinks = await this.getEntityLinks();\n const links = entityLinks\n .filter(link => link.entityRef === entityRef)\n .map(link => link.links)\n .flat();\n if (!links || links.length === 0) {\n return entity;\n }\n\n const existingLinks = entity.metadata.links ?? [];\n const uniqueLinks = [...existingLinks].filter(link => link.type !== 'qeta');\n for (const link of links) {\n if (!existingLinks.find(l => l.url === link.url)) {\n uniqueLinks.push(link);\n }\n }\n\n this.logger.debug(\n `Adding total of ${uniqueLinks.length}, new ${\n uniqueLinks.length - existingLinks.length\n } links to entity ${entityRef}`,\n );\n\n return {\n ...entity,\n metadata: {\n ...entity.metadata,\n links: uniqueLinks,\n },\n };\n }\n\n private async getEntityLinks(): Promise<EntityLinks[]> {\n const cached = await this.cache.get<string>('qeta-entity-links');\n if (cached) {\n try {\n return JSON.parse(cached);\n } catch (e) {\n this.logger.warn(`Failed to parse cached entity links: ${e}`);\n }\n }\n\n this.logger.debug(`Fetching entity links from Qeta`);\n const credentials = await this.auth.getOwnServiceCredentials();\n const { token } = await this.auth.getPluginRequestToken({\n onBehalfOf: credentials,\n targetPluginId: 'qeta',\n });\n const links = await this.client.getEntityLinks({ token });\n await this.cache.set('qeta-entity-links', JSON.stringify(links), {\n ttl: 60 * 60, // cache for 1 hour\n });\n return links;\n }\n}\n"],"names":["QetaClient","stringifyEntityRef"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@drodil/backstage-plugin-catalog-backend-module-qeta",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.37.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "The qeta backend module for the catalog plugin.",
|
|
6
6
|
"keywords": [
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@backstage/backend-plugin-api": "^1.4.3",
|
|
48
48
|
"@backstage/catalog-model": "^1.7.5",
|
|
49
49
|
"@backstage/plugin-catalog-node": "^1.19.0",
|
|
50
|
-
"@drodil/backstage-plugin-qeta-common": "^3.
|
|
50
|
+
"@drodil/backstage-plugin-qeta-common": "^3.37.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@backstage/backend-test-utils": "^1.9.0",
|