@pagerduty/backstage-plugin-entity-processor 0.1.0-next.11 → 0.1.0-next.13
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.
- package/dist/index.cjs.js +50 -18
- package/dist/index.cjs.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -4,6 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var backendPluginApi = require('@backstage/backend-plugin-api');
|
|
6
6
|
var alpha = require('@backstage/plugin-catalog-node/alpha');
|
|
7
|
+
var fetch = require('node-fetch');
|
|
8
|
+
|
|
9
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
|
+
|
|
11
|
+
var fetch__default = /*#__PURE__*/_interopDefaultLegacy(fetch);
|
|
7
12
|
|
|
8
13
|
var __defProp$1 = Object.defineProperty;
|
|
9
14
|
var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -14,25 +19,43 @@ var __publicField$1 = (obj, key, value) => {
|
|
|
14
19
|
class PagerDutyClient {
|
|
15
20
|
constructor({ discovery }) {
|
|
16
21
|
__publicField$1(this, "discovery");
|
|
22
|
+
__publicField$1(this, "baseUrl", "");
|
|
17
23
|
this.discovery = discovery;
|
|
18
24
|
}
|
|
19
|
-
async
|
|
20
|
-
|
|
25
|
+
async findServiceMapping({ type, namespace, name }) {
|
|
26
|
+
let response;
|
|
27
|
+
if (this.baseUrl === "") {
|
|
28
|
+
this.baseUrl = await this.discovery.getBaseUrl("pagerduty");
|
|
29
|
+
}
|
|
30
|
+
const options = {
|
|
31
|
+
method: "GET",
|
|
32
|
+
headers: {
|
|
33
|
+
"Content-Type": "application/json; charset=UTF-8",
|
|
34
|
+
Accept: "application/json, text/plain, */*"
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const url = `${await this.discovery.getBaseUrl(
|
|
38
|
+
"pagerduty"
|
|
39
|
+
)}/mapping/entity/${type}/${namespace}/${name}`;
|
|
40
|
+
try {
|
|
41
|
+
response = await fetch__default["default"](url, options);
|
|
42
|
+
} catch (error) {
|
|
43
|
+
throw new Error(`Failed to retrieve mapping for ${type}:${namespace}/${name}: ${error}`);
|
|
44
|
+
}
|
|
45
|
+
switch (response.status) {
|
|
46
|
+
case 400:
|
|
47
|
+
const errorMessage = await response.text();
|
|
48
|
+
throw new Error(errorMessage);
|
|
49
|
+
case 404:
|
|
50
|
+
return {};
|
|
51
|
+
default:
|
|
52
|
+
const mapping = await response.json();
|
|
53
|
+
return {
|
|
54
|
+
serviceId: mapping.serviceId,
|
|
55
|
+
entityRef: mapping.entityRef
|
|
56
|
+
};
|
|
57
|
+
}
|
|
21
58
|
}
|
|
22
|
-
// async findServiceMapping(entityRef: string): Promise<Response> {
|
|
23
|
-
// const options = {
|
|
24
|
-
// method: 'POST',
|
|
25
|
-
// headers: {
|
|
26
|
-
// 'Content-Type': 'application/json; charset=UTF-8',
|
|
27
|
-
// Accept: 'application/json, text/plain, */*',
|
|
28
|
-
// },
|
|
29
|
-
// body: JSON.stringify({ entityRef }),
|
|
30
|
-
// };
|
|
31
|
-
// const url = `${await this.discovery.getBaseUrl(
|
|
32
|
-
// 'pagerduty',
|
|
33
|
-
// )}/mapping/entity`;
|
|
34
|
-
// return this.request(url, options);
|
|
35
|
-
// }
|
|
36
59
|
}
|
|
37
60
|
|
|
38
61
|
var __defProp = Object.defineProperty;
|
|
@@ -63,8 +86,17 @@ class PagerDutyEntityProcessor {
|
|
|
63
86
|
this.logger.info(`Looking for entity mapping with ref: ${entityRef}`);
|
|
64
87
|
try {
|
|
65
88
|
const client = new PagerDutyClient({ discovery: this.discovery });
|
|
66
|
-
const
|
|
67
|
-
|
|
89
|
+
const mapping = await client.findServiceMapping({
|
|
90
|
+
type: entity.kind.toLowerCase(),
|
|
91
|
+
namespace: entity.metadata.namespace.toLowerCase(),
|
|
92
|
+
name: entity.metadata.name.toLowerCase()
|
|
93
|
+
});
|
|
94
|
+
if (mapping) {
|
|
95
|
+
this.logger.info(`Found mapping for entity: ${entity.metadata.name}`);
|
|
96
|
+
entity.metadata.annotations["pagerduty.com/service-id"] = mapping.serviceId;
|
|
97
|
+
} else {
|
|
98
|
+
this.logger.info(`No mapping found for entity: ${entity.metadata.name}`);
|
|
99
|
+
}
|
|
68
100
|
} catch (error) {
|
|
69
101
|
this.logger.error(`Error processing entity: ${entity.metadata.name}`);
|
|
70
102
|
this.logger.error(`${error}`);
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/apis/client.ts","../src/processor/PagerDutyEntityProcessor.ts","../src/module.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/apis/client.ts","../src/processor/PagerDutyEntityProcessor.ts","../src/module.ts"],"sourcesContent":["import fetch from 'node-fetch';\nimport type { RequestInit, Response } from 'node-fetch';\nimport type { EntityMapping } from '../types';\n\n// import { getAuthToken } from '../auth/auth';\n// import {\n// CreateServiceResponse,\n// } from '../types';\n\n// import {\n// PagerDutyServiceResponse,\n// PagerDutyIntegrationResponse,\n// PagerDutyAbilitiesResponse,\n// } from '@pagerduty/backstage-plugin-common';\nimport { DiscoveryService } from '@backstage/backend-plugin-api';\n\nexport interface PagerDutyClientOptions {\n discovery: DiscoveryService;\n};\n\nexport type BackstageEntityRef = {\n type: string;\n namespace: string;\n name: string;\n}\n\nexport class PagerDutyClient {\n private discovery: DiscoveryService;\n private baseUrl: string = \"\";\n constructor({ discovery }: PagerDutyClientOptions) {\n this.discovery = discovery;\n }\n\n async findServiceMapping({ type, namespace, name }: BackstageEntityRef): Promise<EntityMapping> {\n let response: Response;\n\n if (this.baseUrl === \"\") {\n this.baseUrl = await this.discovery.getBaseUrl('pagerduty');\n }\n\n const options: RequestInit = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json; charset=UTF-8',\n Accept: 'application/json, text/plain, */*',\n },\n };\n\n const url = `${await this.discovery.getBaseUrl(\n 'pagerduty',\n )}/mapping/entity/${type}/${namespace}/${name}`;\n\n\n try {\n response = await fetch(url, options);\n } catch (error) {\n throw new Error(`Failed to retrieve mapping for ${type}:${namespace}/${name}: ${error}`);\n }\n\n switch (response.status) {\n case 400:\n const errorMessage = await response.text();\n throw new Error(errorMessage);\n case 404:\n return {};\n default: // 200\n const mapping: EntityMapping = await response.json();\n\n return {\n serviceId: mapping.serviceId,\n entityRef: mapping.entityRef\n }\n }\n }\n\n}","import { DiscoveryService, LoggerService } from \"@backstage/backend-plugin-api\";\nimport { Entity } from \"@backstage/catalog-model\";\nimport { CatalogProcessor } from \"@backstage/plugin-catalog-node\";\n// import { PagerDutyBackendStore } from \"../db\";\nimport { PagerDutyClient } from \"../apis/client\";\n\n/**\n * A function which given an entity, determines if it should be processed for linguist tags.\n * @public\n */\nexport type ShouldProcessEntity = (entity: Entity) => boolean;\n\nexport interface PagerDutyEntityProcessorOptions {\n logger: LoggerService;\n discovery: DiscoveryService;\n};\n\nexport class PagerDutyEntityProcessor implements CatalogProcessor {\n private logger: LoggerService;\n private discovery: DiscoveryService;\n private shouldProcessEntity: ShouldProcessEntity = (entity: Entity) => {\n return entity.kind === 'Component';\n }\n\n constructor({ logger, discovery }: PagerDutyEntityProcessorOptions) {\n this.logger = logger;\n this.discovery = discovery;\n }\n\n getProcessorName(): string {\n return \"PagerDutyEntityProcessor\";\n }\n\n // static fromConfig(): PagerDutyEntityProcessor {\n // return new PagerDutyEntityProcessor();\n // }\n\n async postProcessEntity(entity: Entity): Promise<Entity> {\n if (this.shouldProcessEntity(entity)) {\n\n const entityRef = `${entity.kind}:${entity.metadata.namespace}/${entity.metadata.name}`.toLowerCase();\n this.logger.info(`Looking for entity mapping with ref: ${entityRef}`);\n\n try{\n const client = new PagerDutyClient({ discovery: this.discovery });\n const mapping = await client.findServiceMapping({\n type: entity.kind.toLowerCase(),\n namespace: entity.metadata.namespace!.toLowerCase(),\n name: entity.metadata.name.toLowerCase(),\n });\n\n if (mapping) {\n this.logger.info(`Found mapping for entity: ${entity.metadata.name}`);\n entity.metadata.annotations![\"pagerduty.com/service-id\"] = mapping.serviceId!;\n } else {\n this.logger.info(`No mapping found for entity: ${entity.metadata.name}`);\n }\n } catch (error) {\n this.logger.error(`Error processing entity: ${entity.metadata.name}`);\n this.logger.error(`${error}`);\n } \n }\n\n return entity;\n }\n}","import { coreServices, createBackendModule } from \"@backstage/backend-plugin-api\";\nimport { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';\nimport { PagerDutyEntityProcessor } from \"./processor\";\n// import { PagerDutyBackendDatabase, PagerDutyBackendStore } from \"./db/PagerDutyBackendDatabase\";\n\n\n\n/** @public */\nexport const pagerDutyEntityProcessor = createBackendModule({\n pluginId: 'catalog',\n moduleId: 'pagerduty-entity-processor',\n register(env) {\n env.registerInit({\n deps: {\n logger: coreServices.logger,\n database: coreServices.database,\n catalog: catalogProcessingExtensionPoint,\n discovery: coreServices.discovery,\n },\n async init({ logger, discovery, catalog }) {\n\n // const store: PagerDutyBackendStore = await PagerDutyBackendDatabase.create(\n // await database.getClient(),\n // );\n\n catalog.addProcessor(new PagerDutyEntityProcessor({ logger, discovery}));\n },\n });\n },\n});\n"],"names":["__publicField","fetch","createBackendModule","coreServices","catalogProcessingExtensionPoint"],"mappings":"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"}
|