@pagerduty/backstage-plugin-entity-processor 0.1.0-next.8 → 0.1.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.
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  **Bring the power of PagerDuty to Backstage!**
8
8
  The PagerDuty plugin reduces the cognitive load on developers responsible for maintaining services in production. Instead of having to go to PagerDuty's console, you can now access the necessary information directly within Backstage. This includes finding active incidents or opening a new incident, reviewing recent changes made to the service, and checking who is on-call.
9
9
 
10
- The PagerDuty Entity Processor package allows users to map their existing PagerDuty services to existing Backstage entities by leveraging point and click instead of updating all configuration files on every single service. With this we want to ease the path for existing PagerDuty customers to integrate easily with Backstage and smoothly transition to a configuration based approach.
10
+ The PagerDuty Entity Processor package allows users to map their existing PagerDuty services to existing Backstage entities by leveraging point and click instead of updating all configuration files on every single service. We will make the necessary changes to the configuration files for you automatically. With this we want to ease the path for existing PagerDuty customers to integrate easily with Backstage and smoothly transition to a configuration based approach.
11
11
 
12
12
  ## Features
13
13
 
@@ -29,7 +29,7 @@ yarn add --cwd packages/backend @pagerduty/backstage-plugin-entity-processor
29
29
 
30
30
  ### Configuration
31
31
 
32
- ...
32
+ To configure the entity processor plugin follow the instructions on the project's documentation [here](https://pagerduty.github.io/backstage-plugin-docs/).
33
33
 
34
34
  ## Support
35
35
 
package/dist/index.cjs.js CHANGED
@@ -4,6 +4,63 @@ 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);
12
+
13
+ var __defProp$1 = Object.defineProperty;
14
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __publicField$1 = (obj, key, value) => {
16
+ __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
17
+ return value;
18
+ };
19
+ class PagerDutyClient {
20
+ constructor({ discovery, logger }) {
21
+ __publicField$1(this, "discovery");
22
+ __publicField$1(this, "logger");
23
+ __publicField$1(this, "baseUrl", "");
24
+ this.discovery = discovery;
25
+ this.logger = logger;
26
+ }
27
+ async findServiceMapping({ type, namespace, name }) {
28
+ let response;
29
+ if (this.baseUrl === "") {
30
+ this.baseUrl = await this.discovery.getBaseUrl("pagerduty");
31
+ }
32
+ const options = {
33
+ method: "GET",
34
+ headers: {
35
+ "Content-Type": "application/json; charset=UTF-8",
36
+ Accept: "application/json, text/plain, */*"
37
+ }
38
+ };
39
+ const url = `${await this.discovery.getBaseUrl(
40
+ "pagerduty"
41
+ )}/mapping/entity/${type}/${namespace}/${name}`;
42
+ try {
43
+ response = await fetch__default["default"](url, options);
44
+ const foundMapping = await response.json();
45
+ switch (response.status) {
46
+ case 400:
47
+ throw new Error(await response.text());
48
+ case 404:
49
+ return {};
50
+ default:
51
+ this.logger.debug(`Found mapping for ${type}:${namespace}/${name}: ${JSON.stringify(foundMapping.mapping)}`);
52
+ return {
53
+ serviceId: foundMapping.mapping.serviceId,
54
+ integrationKey: foundMapping.mapping.integrationKey,
55
+ entityRef: foundMapping.mapping.entityRef
56
+ };
57
+ }
58
+ } catch (error) {
59
+ this.logger.error(`Failed to retrieve mapping for ${type}:${namespace}/${name}: ${error}`);
60
+ throw new Error(`Failed to retrieve mapping for ${type}:${namespace}/${name}: ${error}`);
61
+ }
62
+ }
63
+ }
7
64
 
8
65
  var __defProp = Object.defineProperty;
9
66
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -12,55 +69,51 @@ var __publicField = (obj, key, value) => {
12
69
  return value;
13
70
  };
14
71
  class PagerDutyEntityProcessor {
15
- constructor({ logger, store }) {
72
+ constructor({ logger, discovery }) {
16
73
  __publicField(this, "logger");
17
- __publicField(this, "store");
74
+ __publicField(this, "discovery");
18
75
  __publicField(this, "shouldProcessEntity", (entity) => {
19
76
  return entity.kind === "Component";
20
77
  });
21
78
  this.logger = logger;
22
- this.store = store;
79
+ this.discovery = discovery;
23
80
  }
24
81
  getProcessorName() {
25
82
  return "PagerDutyEntityProcessor";
26
83
  }
27
- // static fromConfig(): PagerDutyEntityProcessor {
28
- // return new PagerDutyEntityProcessor();
29
- // }
30
84
  async postProcessEntity(entity) {
31
85
  if (this.shouldProcessEntity(entity)) {
32
- this.logger.info(`Processing entity: ${JSON.stringify(entity)}`);
33
- const entityRef = `${entity.kind}:${entity.metadata.namespace}/${entity.metadata.name}`.toLowerCase();
34
86
  try {
35
- const mapping = await this.store.findEntityMappingByEntityRef(entityRef);
36
- if (mapping) {
37
- this.logger.info(`Found mapping for entity: ${entity.metadata.name}`);
38
- entity.metadata.annotations["pagerduty.com/service-id"] = mapping.serviceId;
87
+ const client = new PagerDutyClient({ discovery: this.discovery, logger: this.logger });
88
+ const mapping = await client.findServiceMapping({
89
+ type: entity.kind.toLowerCase(),
90
+ namespace: entity.metadata.namespace.toLowerCase(),
91
+ name: entity.metadata.name.toLowerCase()
92
+ });
93
+ if (mapping.serviceId) {
94
+ if (mapping.serviceId && mapping.serviceId !== "") {
95
+ entity.metadata.annotations["pagerduty.com/service-id"] = mapping.serviceId;
96
+ } else {
97
+ delete entity.metadata.annotations["pagerduty.com/service-id"];
98
+ }
99
+ if (mapping.integrationKey && mapping.integrationKey !== "") {
100
+ entity.metadata.annotations["pagerduty.com/integration-key"] = mapping.integrationKey;
101
+ } else {
102
+ delete entity.metadata.annotations["pagerduty.com/integration-key"];
103
+ }
104
+ this.logger.debug(`Added annotations to entity ${entity.metadata.name} with service id: ${mapping.serviceId} and integration key: ${mapping.integrationKey}`);
39
105
  } else {
40
- this.logger.info(`No mapping found for entity: ${entity.metadata.name}`);
106
+ this.logger.debug(`No mapping found for entity: ${entity.metadata.name}`);
41
107
  }
42
108
  } catch (error) {
43
109
  this.logger.error(`Error processing entity: ${entity.metadata.name}`);
44
- this.logger.error(JSON.stringify(error));
110
+ this.logger.error(`${error}`);
45
111
  }
46
112
  }
47
113
  return entity;
48
114
  }
49
115
  }
50
116
 
51
- class PagerDutyBackendDatabase {
52
- constructor(db) {
53
- this.db = db;
54
- }
55
- static async create(knex) {
56
- return new PagerDutyBackendDatabase(knex);
57
- }
58
- async findEntityMappingByEntityRef(entityRef) {
59
- const rawEntity = await this.db("pagerduty_entity_mapping").where("entityRef", entityRef).first();
60
- return rawEntity;
61
- }
62
- }
63
-
64
117
  const pagerDutyEntityProcessor = backendPluginApi.createBackendModule({
65
118
  pluginId: "catalog",
66
119
  moduleId: "pagerduty-entity-processor",
@@ -68,14 +121,11 @@ const pagerDutyEntityProcessor = backendPluginApi.createBackendModule({
68
121
  env.registerInit({
69
122
  deps: {
70
123
  logger: backendPluginApi.coreServices.logger,
71
- database: backendPluginApi.coreServices.database,
72
- catalog: alpha.catalogProcessingExtensionPoint
124
+ catalog: alpha.catalogProcessingExtensionPoint,
125
+ discovery: backendPluginApi.coreServices.discovery
73
126
  },
74
- async init({ logger, database, catalog }) {
75
- const store = await PagerDutyBackendDatabase.create(
76
- await database.getClient()
77
- );
78
- catalog.addProcessor(new PagerDutyEntityProcessor({ logger, store }));
127
+ async init({ logger, discovery, catalog }) {
128
+ catalog.addProcessor(new PagerDutyEntityProcessor({ logger, discovery }));
79
129
  }
80
130
  });
81
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/processor/PagerDutyEntityProcessor.ts","../src/db/PagerDutyBackendDatabase.ts","../src/module.ts"],"sourcesContent":["import { LoggerService } from \"@backstage/backend-plugin-api\";\nimport { Entity } from \"@backstage/catalog-model\";\nimport { CatalogProcessor } from \"@backstage/plugin-catalog-node\";\nimport { PagerDutyBackendStore } from \"../db\";\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 store: PagerDutyBackendStore;\n};\n\nexport class PagerDutyEntityProcessor implements CatalogProcessor {\n private logger: LoggerService;\n private store: PagerDutyBackendStore;\n private shouldProcessEntity: ShouldProcessEntity = (entity: Entity) => {\n return entity.kind === 'Component';\n }\n\n constructor({ logger, store }: PagerDutyEntityProcessorOptions) {\n this.logger = logger;\n this.store = store;\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 this.logger.info(`Processing entity: ${JSON.stringify(entity)}`);\n\n const entityRef = `${entity.kind}:${entity.metadata.namespace}/${entity.metadata.name}`.toLowerCase();\n\n try{\n const mapping = await this.store.findEntityMappingByEntityRef(entityRef);\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(JSON.stringify(error));\n } \n }\n\n return entity;\n }\n}","import { Knex } from 'knex';\n\nexport type RawDbEntityResultRow = {\n id: string;\n entityRef: string;\n serviceId: string;\n processedDate?: Date;\n};\n\n/** @public */\nexport interface PagerDutyBackendStore {\n findEntityMappingByEntityRef(entityRef: string): Promise<RawDbEntityResultRow | undefined>\n}\n\n\n/** @public */\nexport class PagerDutyBackendDatabase implements PagerDutyBackendStore {\n static async create(knex: Knex): Promise<PagerDutyBackendStore> {\n \n return new PagerDutyBackendDatabase(knex);\n }\n\n constructor(private readonly db: Knex) { }\n\n async findEntityMappingByEntityRef(entityRef: string): Promise<RawDbEntityResultRow | undefined> {\n const rawEntity = await this.db<RawDbEntityResultRow>('pagerduty_entity_mapping')\n .where('entityRef', entityRef)\n .first();\n\n return rawEntity;\n }\n}","import { coreServices, createBackendModule } from \"@backstage/backend-plugin-api\";\nimport { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';\nimport { PagerDutyEntityProcessor } from \"./processor\";\nimport { 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 },\n async init({ logger, database, catalog }) {\n\n const store: PagerDutyBackendStore = await PagerDutyBackendDatabase.create(\n await database.getClient(),\n );\n\n catalog.addProcessor(new PagerDutyEntityProcessor({ logger, store}));\n },\n });\n },\n});\n"],"names":["createBackendModule","coreServices","catalogProcessingExtensionPoint"],"mappings":"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"}
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';\nimport { DiscoveryService, LoggerService } from '@backstage/backend-plugin-api';\nimport { PagerDutyEntityMappingResponse } from '@pagerduty/backstage-plugin-common';\n\nexport interface PagerDutyClientOptions {\n discovery: DiscoveryService;\n logger: LoggerService;\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 logger: LoggerService;\n private baseUrl: string = \"\";\n \n constructor({ discovery, logger }: PagerDutyClientOptions) {\n this.discovery = discovery;\n this.logger = logger;\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 try {\n response = await fetch(url, options);\n\n const foundMapping: PagerDutyEntityMappingResponse = await response.json(); \n\n switch (response.status) {\n case 400: \n throw new Error(await response.text());\n case 404:\n return {};\n default: // 200\n this.logger.debug(`Found mapping for ${type}:${namespace}/${name}: ${JSON.stringify(foundMapping.mapping)}`);\n\n return {\n serviceId: foundMapping.mapping.serviceId,\n integrationKey: foundMapping.mapping.integrationKey,\n entityRef: foundMapping.mapping.entityRef\n }\n }\n } catch (error) {\n this.logger.error(`Failed to retrieve mapping for ${type}:${namespace}/${name}: ${error}`);\n throw new Error(`Failed to retrieve mapping for ${type}:${namespace}/${name}: ${error}`);\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\";\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\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 async postProcessEntity(entity: Entity): Promise<Entity> {\n if (this.shouldProcessEntity(entity)) {\n try {\n\n const client = new PagerDutyClient({ discovery: this.discovery, logger: this.logger });\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.serviceId) { // not an empty object \n if (mapping.serviceId && mapping.serviceId !== \"\") {\n entity.metadata.annotations![\"pagerduty.com/service-id\"] = mapping.serviceId;\n }\n else {\n delete entity.metadata.annotations![\"pagerduty.com/service-id\"];\n }\n\n if (mapping.integrationKey && mapping.integrationKey !== \"\") {\n entity.metadata.annotations![\"pagerduty.com/integration-key\"] = mapping.integrationKey;\n }\n else {\n delete entity.metadata.annotations![\"pagerduty.com/integration-key\"];\n }\n\n this.logger.debug(`Added annotations to entity ${entity.metadata.name} with service id: ${mapping.serviceId} and integration key: ${mapping.integrationKey}`);\n } else {\n this.logger.debug(`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\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 catalog: catalogProcessingExtensionPoint,\n discovery: coreServices.discovery,\n },\n async init({ logger, discovery, catalog }) {\n catalog.addProcessor(new PagerDutyEntityProcessor({ logger, discovery}));\n },\n });\n },\n});\n"],"names":["__publicField","fetch","createBackendModule","coreServices","catalogProcessingExtensionPoint"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagerduty/backstage-plugin-entity-processor",
3
- "version": "0.1.0-next.8",
3
+ "version": "0.1.0",
4
4
  "main": "dist/index.cjs.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "Apache-2.0",
@@ -12,6 +12,15 @@
12
12
  "backstage": {
13
13
  "role": "backend-plugin-module"
14
14
  },
15
+ "homepage": "https://pagerduty.github.io/backstage-plugin-docs/index.html",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/PagerDuty/backstage-plugin-entity-processor.git"
19
+ },
20
+ "keywords": [
21
+ "backstage",
22
+ "pagerduty"
23
+ ],
15
24
  "scripts": {
16
25
  "start": "yarn tsc && backstage-cli package start",
17
26
  "build": "yarn tsc && backstage-cli package build",
@@ -25,9 +34,10 @@
25
34
  "@backstage/backend-common": "^0.21.6",
26
35
  "@backstage/backend-defaults": "^0.2.16",
27
36
  "@backstage/backend-plugin-api": "^0.6.20",
37
+ "@backstage/catalog-model": "^1.5.0",
28
38
  "@backstage/config": "^1.2.0",
29
39
  "@backstage/plugin-catalog-node": "^1.12.2",
30
- "@pagerduty/backstage-plugin-common": "0.1.5-next.8",
40
+ "@pagerduty/backstage-plugin-common": "0.1.5",
31
41
  "@rjsf/core": "^5.14.3",
32
42
  "node-fetch": "^2.6.7",
33
43
  "winston": "^3.2.1",