@pagerduty/backstage-plugin-scaffolder-actions 0.2.3 → 0.2.5
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagerduty.cjs.js","sources":["../../src/apis/pagerduty.ts"],"sourcesContent":["import fetch from 'node-fetch';\nimport type { RequestInit, Response } from 'node-fetch';\n\nimport { getAuthToken } from '../auth/auth';\nimport { CreateServiceResponse } from '../types';\n\nimport {\n PagerDutyServiceResponse,\n PagerDutyIntegrationResponse,\n PagerDutyAbilitiesResponse,\n PagerDutyAccountConfig,\n PagerDutyEscalationPolicy,\n HttpError,\n PagerDutyEscalationPoliciesResponse,\n} from '@pagerduty/backstage-plugin-common';\nimport {\n LoggerService,\n RootConfigService,\n} from '@backstage/backend-plugin-api';\nimport { Config } from '@backstage/config';\n\ntype JsonValue = boolean | number | string | null | JsonArray | JsonObject;\n\ninterface JsonObject {\n [x: string]: JsonValue;\n}\n\ntype JsonArray = JsonValue[];\n\nexport type LoadEndpointConfigProps = {\n config: RootConfigService | undefined;\n legacyConfig: Config;\n logger: LoggerService;\n};\n\nexport type PagerDutyEndpointConfig = {\n eventsBaseUrl: string;\n apiBaseUrl: string;\n};\n\nconst EndpointConfig: Record<string, PagerDutyEndpointConfig> = {};\nlet fallbackEndpointConfig: PagerDutyEndpointConfig;\nlet isLegacyConfig = false;\n\nlet _config: RootConfigService | undefined;\nlet _legacyConfig: Config;\nlet _logger: LoggerService;\n\nexport function setFallbackEndpointConfig(account: PagerDutyAccountConfig) {\n fallbackEndpointConfig = {\n eventsBaseUrl:\n account.eventsBaseUrl !== undefined\n ? account.eventsBaseUrl\n : 'https://events.pagerduty.com/v2',\n apiBaseUrl:\n account.apiBaseUrl !== undefined\n ? account.apiBaseUrl\n : 'https://api.pagerduty.com',\n };\n}\n\nexport function insertEndpointConfig(account: PagerDutyAccountConfig) {\n EndpointConfig[account.id] = {\n eventsBaseUrl:\n account.eventsBaseUrl !== undefined\n ? account.eventsBaseUrl\n : 'https://events.pagerduty.com/v2',\n apiBaseUrl:\n account.apiBaseUrl !== undefined\n ? account.apiBaseUrl\n : 'https://api.pagerduty.com',\n };\n}\n\nexport function loadPagerDutyEndpointsFromConfig({\n config,\n legacyConfig,\n logger,\n}: LoadEndpointConfigProps) {\n // set config and logger\n _config = config;\n _legacyConfig = legacyConfig;\n _logger = logger;\n\n if (readOptionalObject('pagerDuty.accounts')) {\n _logger.debug(\n `New accounts configuration detected. Loading PagerDuty endpoints from config.`,\n );\n isLegacyConfig = false;\n\n const accounts: PagerDutyAccountConfig[] = JSON.parse(\n JSON.stringify(readOptionalObject('pagerDuty.accounts')),\n );\n\n if (accounts?.length === 1) {\n _logger.debug(\n `Single account configuration detected. Loading PagerDuty endpoints from config to 'default'.`,\n );\n EndpointConfig.default = {\n eventsBaseUrl:\n accounts[0].eventsBaseUrl !== undefined\n ? accounts[0].eventsBaseUrl\n : 'https://events.pagerduty.com/v2',\n apiBaseUrl:\n accounts[0].apiBaseUrl !== undefined\n ? accounts[0].apiBaseUrl\n : 'https://api.pagerduty.com',\n };\n } else {\n _logger.debug(\n `Multiple account configuration detected. Loading PagerDuty endpoints from config.`,\n );\n accounts?.forEach(account => {\n if (account.isDefault) {\n setFallbackEndpointConfig(account);\n }\n\n insertEndpointConfig(account);\n });\n }\n } else {\n _logger.debug(`Loading legacy PagerDuty endpoints from config.`);\n isLegacyConfig = true;\n\n EndpointConfig.default = {\n eventsBaseUrl:\n readOptionalString('pagerDuty.eventsBaseUrl') !== undefined\n ? readString('pagerDuty.eventsBaseUrl')\n : 'https://events.pagerduty.com/v2',\n apiBaseUrl:\n readOptionalString('pagerDuty.apiBaseUrl') !== undefined\n ? readString('pagerDuty.apiBaseUrl')\n : 'https://api.pagerduty.com',\n };\n }\n}\n\nexport function getApiBaseUrl(account?: string): string {\n if (isLegacyConfig === true) {\n return EndpointConfig.default.apiBaseUrl;\n }\n\n if (account) {\n return EndpointConfig[account].apiBaseUrl;\n }\n\n return fallbackEndpointConfig.apiBaseUrl;\n}\n\nexport type CreateServiceProps = {\n name: string;\n description: string;\n escalationPolicyId: string;\n account?: string;\n alertGrouping?: string;\n};\n\n// Supporting custom actions\nexport async function createService({\n name,\n description,\n escalationPolicyId,\n account,\n alertGrouping,\n}: CreateServiceProps): Promise<CreateServiceResponse> {\n let alertGroupingParameters = 'null';\n let response: Response;\n\n const apiBaseUrl = getApiBaseUrl(account);\n const baseUrl = `${apiBaseUrl}/services`;\n\n // Set default body\n let body = JSON.stringify({\n service: {\n type: 'service',\n name: name,\n description: description,\n alert_creation: 'create_alerts_and_incidents',\n auto_pause_notifications_parameters: {\n enabled: true,\n timeout: 300,\n },\n escalation_policy: {\n id: escalationPolicyId,\n type: 'escalation_policy_reference',\n },\n },\n });\n\n // Override body if alert grouping is enabled and passed as parameter\n if (\n (await isEventNoiseReductionEnabled(account)) &&\n alertGrouping !== undefined\n ) {\n alertGroupingParameters = alertGrouping;\n\n switch (alertGroupingParameters) {\n case 'intelligent':\n body = JSON.stringify({\n service: {\n type: 'service',\n name: name,\n description: description,\n escalation_policy: {\n id: escalationPolicyId,\n type: 'escalation_policy_reference',\n },\n alert_creation: 'create_alerts_and_incidents',\n alert_grouping_parameters: {\n type: alertGroupingParameters,\n },\n auto_pause_notifications_parameters: {\n enabled: true,\n timeout: 300,\n },\n },\n });\n break;\n case 'time':\n body = JSON.stringify({\n service: {\n type: 'service',\n name: name,\n description: description,\n escalation_policy: {\n id: escalationPolicyId,\n type: 'escalation_policy_reference',\n },\n alert_creation: 'create_alerts_and_incidents',\n alert_grouping_parameters: {\n type: alertGroupingParameters,\n config: {\n timeout: 0,\n },\n },\n auto_pause_notifications_parameters: {\n enabled: true,\n timeout: 300,\n },\n },\n });\n break;\n case 'content_based':\n body = JSON.stringify({\n service: {\n type: 'service',\n name: name,\n description: description,\n escalation_policy: {\n id: escalationPolicyId,\n type: 'escalation_policy_reference',\n },\n alert_creation: 'create_alerts_and_incidents',\n alert_grouping_parameters: {\n type: alertGroupingParameters,\n config: {\n aggregate: 'all',\n time_window: 0,\n fields: ['source', 'summary'],\n },\n },\n auto_pause_notifications_parameters: {\n enabled: true,\n timeout: 300,\n },\n },\n });\n break;\n default:\n break;\n }\n }\n\n const token = await getAuthToken(account);\n\n const options: RequestInit = {\n method: 'POST',\n body: body,\n headers: {\n Authorization: token,\n Accept: 'application/vnd.pagerduty+json;version=2',\n 'Content-Type': 'application/json',\n },\n };\n\n try {\n response = await fetch(baseUrl, options);\n } catch (error) {\n throw new Error(`Failed to create service: ${error}`);\n }\n\n switch (response.status) {\n case 400:\n throw new Error(\n `Failed to create service. Caller provided invalid arguments.`,\n );\n case 401:\n throw new Error(\n `Failed to create service. Caller did not supply credentials or did not provide the correct credentials.`,\n );\n case 402:\n throw new Error(\n `Failed to create service. Account does not have the abilities to perform the action.`,\n );\n case 403:\n throw new Error(\n `Failed to create service. Caller is not authorized to view the requested resource.`,\n );\n default: // 201\n break;\n }\n\n let result: PagerDutyServiceResponse;\n try {\n result = (await response.json()) as PagerDutyServiceResponse;\n\n const createServiceResult: CreateServiceResponse = {\n url: result.service.html_url,\n id: result.service.id,\n alertGrouping: alertGroupingParameters,\n };\n\n return createServiceResult;\n } catch (error) {\n throw new Error(`Failed to parse service information: ${error}`);\n }\n}\n\nexport type CreateServiceIntegrationProps = {\n serviceId: string;\n vendorId: string;\n account?: string;\n};\n\nexport async function createServiceIntegration({\n serviceId,\n vendorId,\n account,\n}: CreateServiceIntegrationProps): Promise<string> {\n let response: Response;\n\n const apiBaseUrl = getApiBaseUrl(account);\n const baseUrl = `${apiBaseUrl}/services`;\n const token = await getAuthToken(account);\n\n const options: RequestInit = {\n method: 'POST',\n body: JSON.stringify({\n integration: {\n name: 'Backstage',\n service: {\n id: serviceId,\n type: 'service_reference',\n },\n vendor: {\n id: vendorId,\n type: 'vendor_reference',\n },\n },\n }),\n headers: {\n Authorization: token,\n Accept: 'application/vnd.pagerduty+json;version=2',\n 'Content-Type': 'application/json',\n },\n };\n\n try {\n response = await fetch(`${baseUrl}/${serviceId}/integrations`, options);\n } catch (error) {\n throw new Error(`Failed to create service integration: ${error}`);\n }\n\n switch (response.status) {\n case 400:\n throw new Error(\n `Failed to create service integration. Caller provided invalid arguments.`,\n );\n case 401:\n throw new Error(\n `Failed to create service integration. Caller did not supply credentials or did not provide the correct credentials.`,\n );\n case 403:\n throw new Error(\n `Failed to create service integration. Caller is not authorized to view the requested resource.`,\n );\n case 429:\n throw new Error(\n `Failed to create service integration. Rate limit exceeded.`,\n );\n default: // 201\n break;\n }\n\n let result: PagerDutyIntegrationResponse;\n try {\n result = (await response.json()) as PagerDutyIntegrationResponse;\n\n return result.integration.integration_key ?? '';\n } catch (error) {\n throw new Error(`Failed to parse service information: ${error}`);\n }\n}\n\nexport async function isEventNoiseReductionEnabled(\n account?: string,\n): Promise<boolean> {\n let response: Response;\n const baseUrl = getApiBaseUrl(account);\n const token = await getAuthToken(account);\n\n const options: RequestInit = {\n method: 'GET',\n headers: {\n Authorization: token,\n Accept: 'application/vnd.pagerduty+json;version=2',\n 'Content-Type': 'application/json',\n },\n };\n\n try {\n response = await fetch(`${baseUrl}/abilities`, options);\n } catch (error) {\n throw new Error(`Failed to read abilities: ${error}`);\n }\n\n switch (response.status) {\n case 401:\n throw new Error(\n `Failed to read abilities. Caller did not supply credentials or did not provide the correct credentials.`,\n );\n case 403:\n throw new Error(\n `Failed to read abilities. Caller is not authorized to view the requested resource.`,\n );\n case 429:\n throw new Error(`Failed to read abilities. Rate limit exceeded.`);\n default: // 200\n break;\n }\n\n let result: PagerDutyAbilitiesResponse;\n try {\n result = (await response.json()) as PagerDutyAbilitiesResponse;\n\n if (\n result.abilities.includes('preview_intelligent_alert_grouping') &&\n result.abilities.includes('time_based_alert_grouping')\n ) {\n return true;\n }\n\n return false;\n } catch (error) {\n throw new Error(`Failed to parse abilities information: ${error}`);\n }\n}\n\nfunction readOptionalString(key: string): string | undefined {\n if (!_config) {\n return _legacyConfig.getOptionalString(key);\n }\n\n return _config.getOptionalString(key);\n}\n\nfunction readOptionalObject(key: string): JsonValue | undefined {\n if (!_config) {\n return _legacyConfig.getOptional(key);\n }\n\n return _config.getOptional(key);\n}\n\nfunction readString(key: string): string {\n if (!_config) {\n return _legacyConfig.getString(key);\n }\n\n return _config.getString(key);\n}\n\nexport async function getAccountByEscalationPolicyId(\n escalationPolicyId: string,\n): Promise<string> {\n const escalationPoliciesList: PagerDutyEscalationPolicy[] =\n await getAllEscalationPolicies();\n\n // find escalation policy by id and return account\n const escalationPolicy = escalationPoliciesList.find(\n policy => policy.id === escalationPolicyId,\n );\n\n return escalationPolicy?.account ?? '';\n}\n\nasync function getEscalationPolicies(\n offset: number,\n limit: number,\n account?: string,\n): Promise<[Boolean, PagerDutyEscalationPolicy[]]> {\n let response: Response;\n const params = `total=true&sort_by=name&offset=${offset}&limit=${limit}`;\n const options: RequestInit = {\n method: 'GET',\n headers: {\n Authorization: await getAuthToken(account),\n Accept: 'application/vnd.pagerduty+json;version=2',\n 'Content-Type': 'application/json',\n },\n };\n\n const apiBaseUrl = getApiBaseUrl(account);\n const baseUrl = `${apiBaseUrl}/escalation_policies`;\n\n try {\n response = await fetch(`${baseUrl}?${params}`, options);\n } catch (error) {\n throw new Error(`Failed to retrieve escalation policies: ${error}`);\n }\n\n switch (response.status) {\n case 400:\n throw new HttpError(\n 'Failed to list escalation policies. Caller provided invalid arguments.',\n 400,\n );\n case 401:\n throw new HttpError(\n 'Failed to list escalation policies. Caller did not supply credentials or did not provide the correct credentials.',\n 401,\n );\n case 403:\n throw new HttpError(\n 'Failed to list escalation policies. Caller is not authorized to view the requested resource.',\n 403,\n );\n case 429:\n throw new HttpError(\n 'Failed to list escalation policies. Rate limit exceeded.',\n 429,\n );\n default: // 200\n break;\n }\n\n let result: PagerDutyEscalationPoliciesResponse;\n try {\n result = (await response.json()) as PagerDutyEscalationPoliciesResponse;\n\n return [result.more ?? false, result.escalation_policies];\n } catch (error) {\n throw new HttpError(\n `Failed to parse escalation policy information: ${error}`,\n 500,\n );\n }\n}\n\nexport async function getAllEscalationPolicies(): Promise<\n PagerDutyEscalationPolicy[]\n> {\n const limit = 50;\n let offset = 0;\n let moreResults = false;\n let results: PagerDutyEscalationPolicy[] = [];\n\n await Promise.all(\n Object.keys(EndpointConfig).map(async account => {\n try {\n // reset offset value\n offset = 0;\n\n do {\n const res = await getEscalationPolicies(offset, limit, account);\n\n // set account for each escalation policy\n res[1].forEach(policy => {\n policy.account = account;\n });\n\n // update results\n results = results.concat(res[1]);\n\n // if more results exist\n if (res[0] === true) {\n moreResults = true;\n offset += limit;\n } else {\n moreResults = false;\n }\n } while (moreResults === true);\n } catch (error) {\n if (error instanceof HttpError) {\n throw error;\n } else {\n throw new HttpError(`${error}`, 500);\n }\n }\n }),\n );\n\n return results;\n}\n"],"names":["getAuthToken","fetch","HttpError"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pagerduty.cjs.js","sources":["../../src/apis/pagerduty.ts"],"sourcesContent":["import fetch from 'node-fetch';\nimport type { RequestInit, Response } from 'node-fetch';\n\nimport { getAuthToken } from '../auth/auth';\nimport { CreateServiceResponse } from '../types';\n\nimport {\n PagerDutyServiceResponse,\n PagerDutyIntegrationResponse,\n PagerDutyAbilitiesResponse,\n PagerDutyAccountConfig,\n PagerDutyEscalationPolicy,\n HttpError,\n PagerDutyEscalationPoliciesResponse,\n} from '@pagerduty/backstage-plugin-common';\nimport {\n LoggerService,\n RootConfigService,\n} from '@backstage/backend-plugin-api';\nimport { Config } from '@backstage/config';\n\ntype JsonValue = boolean | number | string | null | JsonArray | JsonObject;\n\ninterface JsonObject {\n [x: string]: JsonValue;\n}\n\ntype JsonArray = JsonValue[];\n\nexport type LoadEndpointConfigProps = {\n config: RootConfigService | undefined;\n legacyConfig: Config;\n logger: LoggerService;\n};\n\nexport type PagerDutyEndpointConfig = {\n eventsBaseUrl: string;\n apiBaseUrl: string;\n};\n\nconst EndpointConfig: Record<string, PagerDutyEndpointConfig> = {};\nlet fallbackEndpointConfig: PagerDutyEndpointConfig;\nlet isLegacyConfig = false;\n\nlet _config: RootConfigService | undefined;\nlet _legacyConfig: Config;\nlet _logger: LoggerService;\n\nexport function setFallbackEndpointConfig(account: PagerDutyAccountConfig) {\n fallbackEndpointConfig = {\n eventsBaseUrl:\n account.eventsBaseUrl !== undefined\n ? account.eventsBaseUrl\n : 'https://events.pagerduty.com/v2',\n apiBaseUrl:\n account.apiBaseUrl !== undefined\n ? account.apiBaseUrl\n : 'https://api.pagerduty.com',\n };\n}\n\nexport function insertEndpointConfig(account: PagerDutyAccountConfig) {\n EndpointConfig[account.id] = {\n eventsBaseUrl:\n account.eventsBaseUrl !== undefined\n ? account.eventsBaseUrl\n : 'https://events.pagerduty.com/v2',\n apiBaseUrl:\n account.apiBaseUrl !== undefined\n ? account.apiBaseUrl\n : 'https://api.pagerduty.com',\n };\n}\n\nexport function loadPagerDutyEndpointsFromConfig({\n config,\n legacyConfig,\n logger,\n}: LoadEndpointConfigProps) {\n // set config and logger\n _config = config;\n _legacyConfig = legacyConfig;\n _logger = logger;\n\n if (readOptionalObject('pagerDuty.accounts')) {\n _logger.debug(\n `New accounts configuration detected. Loading PagerDuty endpoints from config.`,\n );\n isLegacyConfig = false;\n\n const accounts: PagerDutyAccountConfig[] = JSON.parse(\n JSON.stringify(readOptionalObject('pagerDuty.accounts')),\n );\n\n if (accounts?.length === 1) {\n _logger.debug(\n `Single account configuration detected. Loading PagerDuty endpoints from config to 'default'.`,\n );\n EndpointConfig.default = {\n eventsBaseUrl:\n accounts[0].eventsBaseUrl !== undefined\n ? accounts[0].eventsBaseUrl\n : 'https://events.pagerduty.com/v2',\n apiBaseUrl:\n accounts[0].apiBaseUrl !== undefined\n ? accounts[0].apiBaseUrl\n : 'https://api.pagerduty.com',\n };\n } else {\n _logger.debug(\n `Multiple account configuration detected. Loading PagerDuty endpoints from config.`,\n );\n accounts?.forEach(account => {\n if (account.isDefault) {\n setFallbackEndpointConfig(account);\n }\n\n insertEndpointConfig(account);\n });\n }\n } else {\n _logger.debug(`Loading legacy PagerDuty endpoints from config.`);\n isLegacyConfig = true;\n\n EndpointConfig.default = {\n eventsBaseUrl:\n readOptionalString('pagerDuty.eventsBaseUrl') !== undefined\n ? readString('pagerDuty.eventsBaseUrl')\n : 'https://events.pagerduty.com/v2',\n apiBaseUrl:\n readOptionalString('pagerDuty.apiBaseUrl') !== undefined\n ? readString('pagerDuty.apiBaseUrl')\n : 'https://api.pagerduty.com',\n };\n }\n}\n\nexport function getApiBaseUrl(account?: string): string {\n if (isLegacyConfig === true) {\n return EndpointConfig.default.apiBaseUrl;\n }\n\n if (account) {\n return EndpointConfig[account].apiBaseUrl;\n }\n\n return fallbackEndpointConfig.apiBaseUrl;\n}\n\nexport type CreateServiceProps = {\n name: string;\n description: string;\n escalationPolicyId: string;\n account?: string;\n alertGrouping?: string;\n};\n\n// Supporting custom actions\nexport async function createService({\n name,\n description,\n escalationPolicyId,\n account,\n alertGrouping,\n}: CreateServiceProps): Promise<CreateServiceResponse> {\n let alertGroupingParameters = 'null';\n let response: Response;\n\n const apiBaseUrl = getApiBaseUrl(account);\n const baseUrl = `${apiBaseUrl}/services`;\n\n // Set default body\n let body = JSON.stringify({\n service: {\n type: 'service',\n name: name,\n description: description,\n alert_creation: 'create_alerts_and_incidents',\n auto_pause_notifications_parameters: {\n enabled: true,\n timeout: 300,\n },\n escalation_policy: {\n id: escalationPolicyId,\n type: 'escalation_policy_reference',\n },\n },\n });\n\n // Override body if alert grouping is enabled and passed as parameter\n if (\n (await isEventNoiseReductionEnabled(account)) &&\n alertGrouping !== undefined\n ) {\n alertGroupingParameters = alertGrouping;\n\n switch (alertGroupingParameters) {\n case 'intelligent':\n body = JSON.stringify({\n service: {\n type: 'service',\n name: name,\n description: description,\n escalation_policy: {\n id: escalationPolicyId,\n type: 'escalation_policy_reference',\n },\n alert_creation: 'create_alerts_and_incidents',\n alert_grouping_parameters: {\n type: alertGroupingParameters,\n },\n auto_pause_notifications_parameters: {\n enabled: true,\n timeout: 300,\n },\n },\n });\n break;\n case 'time':\n body = JSON.stringify({\n service: {\n type: 'service',\n name: name,\n description: description,\n escalation_policy: {\n id: escalationPolicyId,\n type: 'escalation_policy_reference',\n },\n alert_creation: 'create_alerts_and_incidents',\n alert_grouping_parameters: {\n type: alertGroupingParameters,\n config: {\n timeout: 0,\n },\n },\n auto_pause_notifications_parameters: {\n enabled: true,\n timeout: 300,\n },\n },\n });\n break;\n case 'content_based':\n body = JSON.stringify({\n service: {\n type: 'service',\n name: name,\n description: description,\n escalation_policy: {\n id: escalationPolicyId,\n type: 'escalation_policy_reference',\n },\n alert_creation: 'create_alerts_and_incidents',\n alert_grouping_parameters: {\n type: alertGroupingParameters,\n config: {\n aggregate: 'all',\n time_window: 0,\n fields: ['source', 'summary'],\n },\n },\n auto_pause_notifications_parameters: {\n enabled: true,\n timeout: 300,\n },\n },\n });\n break;\n default:\n break;\n }\n }\n\n const token = await getAuthToken(account);\n\n const options: RequestInit = {\n method: 'POST',\n body: body,\n headers: {\n Authorization: token,\n Accept: 'application/vnd.pagerduty+json;version=2',\n 'Content-Type': 'application/json',\n },\n };\n\n try {\n response = await fetch(baseUrl, options);\n } catch (error) {\n throw new Error(`Failed to create service: ${error}`);\n }\n\n switch (response.status) {\n case 400:\n throw new Error(\n `Failed to create service. Caller provided invalid arguments.`,\n );\n case 401:\n throw new Error(\n `Failed to create service. Caller did not supply credentials or did not provide the correct credentials.`,\n );\n case 402:\n throw new Error(\n `Failed to create service. Account does not have the abilities to perform the action.`,\n );\n case 403:\n throw new Error(\n `Failed to create service. Caller is not authorized to view the requested resource.`,\n );\n default: // 201\n break;\n }\n\n let result: PagerDutyServiceResponse;\n try {\n result = (await response.json()) as PagerDutyServiceResponse;\n\n const createServiceResult: CreateServiceResponse = {\n url: result.service.html_url,\n id: result.service.id,\n alertGrouping: alertGroupingParameters,\n };\n\n return createServiceResult;\n } catch (error) {\n throw new Error(`Failed to parse service information: ${error}`);\n }\n}\n\nexport type CreateServiceIntegrationProps = {\n serviceId: string;\n vendorId: string;\n account?: string;\n};\n\nexport async function createServiceIntegration({\n serviceId,\n vendorId,\n account,\n}: CreateServiceIntegrationProps): Promise<string> {\n let response: Response;\n\n const apiBaseUrl = getApiBaseUrl(account);\n const baseUrl = `${apiBaseUrl}/services`;\n const token = await getAuthToken(account);\n\n const options: RequestInit = {\n method: 'POST',\n body: JSON.stringify({\n integration: {\n name: 'Backstage',\n service: {\n id: serviceId,\n type: 'service_reference',\n },\n vendor: {\n id: vendorId,\n type: 'vendor_reference',\n },\n },\n }),\n headers: {\n Authorization: token,\n Accept: 'application/vnd.pagerduty+json;version=2',\n 'Content-Type': 'application/json',\n },\n };\n\n try {\n response = await fetch(`${baseUrl}/${serviceId}/integrations`, options);\n } catch (error) {\n throw new Error(`Failed to create service integration: ${error}`);\n }\n\n switch (response.status) {\n case 400:\n throw new Error(\n `Failed to create service integration. Caller provided invalid arguments.`,\n );\n case 401:\n throw new Error(\n `Failed to create service integration. Caller did not supply credentials or did not provide the correct credentials.`,\n );\n case 403:\n throw new Error(\n `Failed to create service integration. Caller is not authorized to view the requested resource.`,\n );\n case 429:\n throw new Error(\n `Failed to create service integration. Rate limit exceeded.`,\n );\n default: // 201\n break;\n }\n\n let result: PagerDutyIntegrationResponse;\n try {\n result = (await response.json()) as PagerDutyIntegrationResponse;\n\n return result.integration.integration_key ?? '';\n } catch (error) {\n throw new Error(`Failed to parse service information: ${error}`);\n }\n}\n\nexport async function isEventNoiseReductionEnabled(\n account?: string,\n): Promise<boolean> {\n let response: Response;\n const baseUrl = getApiBaseUrl(account);\n const token = await getAuthToken(account);\n\n const options: RequestInit = {\n method: 'GET',\n headers: {\n Authorization: token,\n Accept: 'application/vnd.pagerduty+json;version=2',\n 'Content-Type': 'application/json',\n },\n };\n\n try {\n response = await fetch(`${baseUrl}/abilities`, options);\n } catch (error) {\n throw new Error(`Failed to read abilities: ${error}`);\n }\n\n switch (response.status) {\n case 401:\n throw new Error(\n `Failed to read abilities. Caller did not supply credentials or did not provide the correct credentials.`,\n );\n case 403:\n throw new Error(\n `Failed to read abilities. Caller is not authorized to view the requested resource.`,\n );\n case 429:\n throw new Error(`Failed to read abilities. Rate limit exceeded.`);\n default: // 200\n break;\n }\n\n let result: PagerDutyAbilitiesResponse;\n try {\n result = (await response.json()) as PagerDutyAbilitiesResponse;\n\n if (\n result.abilities.includes('preview_intelligent_alert_grouping') &&\n result.abilities.includes('time_based_alert_grouping')\n ) {\n return true;\n }\n\n return false;\n } catch (error) {\n throw new Error(`Failed to parse abilities information: ${error}`);\n }\n}\n\nfunction readOptionalString(key: string): string | undefined {\n if (!_config) {\n return _legacyConfig.getOptionalString(key);\n }\n\n return _config.getOptionalString(key);\n}\n\nfunction readOptionalObject(key: string): JsonValue | undefined {\n if (!_config) {\n return _legacyConfig.getOptional(key);\n }\n\n return _config.getOptional(key);\n}\n\nfunction readString(key: string): string {\n if (!_config) {\n return _legacyConfig.getString(key);\n }\n\n return _config.getString(key);\n}\n\nexport async function getAccountByEscalationPolicyId(\n escalationPolicyId: string,\n): Promise<string> {\n const escalationPoliciesList: PagerDutyEscalationPolicy[] =\n await getAllEscalationPolicies();\n\n // find escalation policy by id and return account\n const escalationPolicy = escalationPoliciesList.find(\n policy => policy.id === escalationPolicyId,\n );\n\n return escalationPolicy?.account ?? '';\n}\n\nasync function getEscalationPolicies(\n offset: number,\n limit: number,\n account?: string,\n): Promise<[boolean, PagerDutyEscalationPolicy[]]> {\n let response: Response;\n const params = `total=true&sort_by=name&offset=${offset}&limit=${limit}`;\n const options: RequestInit = {\n method: 'GET',\n headers: {\n Authorization: await getAuthToken(account),\n Accept: 'application/vnd.pagerduty+json;version=2',\n 'Content-Type': 'application/json',\n },\n };\n\n const apiBaseUrl = getApiBaseUrl(account);\n const baseUrl = `${apiBaseUrl}/escalation_policies`;\n\n try {\n response = await fetch(`${baseUrl}?${params}`, options);\n } catch (error) {\n throw new Error(`Failed to retrieve escalation policies: ${error}`);\n }\n\n switch (response.status) {\n case 400:\n throw new HttpError(\n 'Failed to list escalation policies. Caller provided invalid arguments.',\n 400,\n );\n case 401:\n throw new HttpError(\n 'Failed to list escalation policies. Caller did not supply credentials or did not provide the correct credentials.',\n 401,\n );\n case 403:\n throw new HttpError(\n 'Failed to list escalation policies. Caller is not authorized to view the requested resource.',\n 403,\n );\n case 429:\n throw new HttpError(\n 'Failed to list escalation policies. Rate limit exceeded.',\n 429,\n );\n default: // 200\n break;\n }\n\n let result: PagerDutyEscalationPoliciesResponse;\n try {\n result = (await response.json()) as PagerDutyEscalationPoliciesResponse;\n\n return [result.more ?? false, result.escalation_policies];\n } catch (error) {\n throw new HttpError(\n `Failed to parse escalation policy information: ${error}`,\n 500,\n );\n }\n}\n\nexport async function getAllEscalationPolicies(): Promise<\n PagerDutyEscalationPolicy[]\n> {\n const limit = 50;\n let offset = 0;\n let moreResults = false;\n let results: PagerDutyEscalationPolicy[] = [];\n\n await Promise.all(\n Object.keys(EndpointConfig).map(async account => {\n try {\n // reset offset value\n offset = 0;\n\n do {\n const res = await getEscalationPolicies(offset, limit, account);\n\n // set account for each escalation policy\n res[1].forEach(policy => {\n policy.account = account;\n });\n\n // update results\n results = results.concat(res[1]);\n\n // if more results exist\n if (res[0] === true) {\n moreResults = true;\n offset += limit;\n } else {\n moreResults = false;\n }\n } while (moreResults === true);\n } catch (error) {\n if (error instanceof HttpError) {\n throw error;\n } else {\n throw new HttpError(`${error}`, 500);\n }\n }\n }),\n );\n\n return results;\n}\n"],"names":["getAuthToken","fetch","HttpError"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pagerduty/backstage-plugin-scaffolder-actions",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"main": "dist/index.cjs.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"types": "dist/index.d.ts"
|
|
11
11
|
},
|
|
12
12
|
"backstage": {
|
|
13
|
+
"pluginId": "scaffolder",
|
|
13
14
|
"role": "backend-plugin-module",
|
|
14
|
-
"pluginPackage": "scaffolder",
|
|
15
|
-
"pluginId": "pagerduty-actions",
|
|
15
|
+
"pluginPackage": "@backstage/plugin-scaffolder-backend",
|
|
16
16
|
"features": {
|
|
17
17
|
".": "@backstage/BackendFeature"
|
|
18
18
|
}
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"homepage": "https://pagerduty.github.io/backstage-plugin-docs/index.html",
|
|
21
21
|
"repository": {
|
|
22
22
|
"type": "git",
|
|
23
|
-
"url": "https://github.com/PagerDuty/backstage-
|
|
24
|
-
"directory": "
|
|
23
|
+
"url": "https://github.com/PagerDuty/backstage-plugins",
|
|
24
|
+
"directory": "plugins/backstage-plugin-scaffolder-actions"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
27
|
"start": "backstage-cli package start",
|