@axis-backstage/plugin-statuspage-backend 0.10.1 → 0.10.3
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @axis-backstage/plugin-statuspage-backend
|
|
2
2
|
|
|
3
|
+
## 0.10.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d29962b: Use native fetch instead of cross-fetch according to ADR14
|
|
8
|
+
|
|
9
|
+
## 0.10.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 36858a7: Bumped to backstage 1.50.2
|
|
14
|
+
- Updated dependencies [36858a7]
|
|
15
|
+
- @axis-backstage/plugin-statuspage-common@0.9.1
|
|
16
|
+
|
|
3
17
|
## 0.10.1
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/dist/config.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.cjs.js","sources":["../src/config.ts"],"sourcesContent":["import { Config } from '@backstage/config';\nimport type { StatuspageConfig } from './types';\n\nexport function getStatuspageConfig(config: Config): StatuspageConfig {\n const statuspageConfig = config.getOptional('statuspage');\n if (!statuspageConfig) {\n return [];\n }\n return statuspageConfig as unknown as StatuspageConfig;\n}\n"],"names":[],"mappings":";;AAGO,SAAS,oBAAoB,
|
|
1
|
+
{"version":3,"file":"config.cjs.js","sources":["../src/config.ts"],"sourcesContent":["import { Config } from '@backstage/config';\nimport type { StatuspageConfig } from './types';\n\nexport function getStatuspageConfig(config: Config): StatuspageConfig {\n const statuspageConfig = config.getOptional('statuspage');\n if (!statuspageConfig) {\n return [];\n }\n return statuspageConfig as unknown as StatuspageConfig;\n}\n"],"names":[],"mappings":";;AAGO,SAAS,oBAAoB,MAAA,EAAkC;AACpE,EAAA,MAAM,gBAAA,GAAmB,MAAA,CAAO,WAAA,CAAY,YAAY,CAAA;AACxD,EAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,gBAAA;AACT;;;;"}
|
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["../src/plugin.ts"],"sourcesContent":["import {\n coreServices,\n createBackendPlugin,\n} from '@backstage/backend-plugin-api';\nimport { createRouter } from './service/router';\n\n/**\n * Entrypoint for status page plugin.\n *\n * @public\n */\nexport const statuspagePlugin = createBackendPlugin({\n pluginId: 'statuspage',\n register(env) {\n env.registerInit({\n deps: {\n cache: coreServices.cache,\n httpRouter: coreServices.httpRouter,\n logger: coreServices.logger,\n rootConfig: coreServices.rootConfig,\n },\n async init({ cache, httpRouter, logger, rootConfig }) {\n httpRouter.use(\n await createRouter({\n rootConfig,\n logger,\n cache,\n }),\n );\n },\n });\n },\n});\n"],"names":["createBackendPlugin","coreServices","createRouter"],"mappings":";;;;;AAWO,MAAM,mBAAmBA,
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["../src/plugin.ts"],"sourcesContent":["import {\n coreServices,\n createBackendPlugin,\n} from '@backstage/backend-plugin-api';\nimport { createRouter } from './service/router';\n\n/**\n * Entrypoint for status page plugin.\n *\n * @public\n */\nexport const statuspagePlugin = createBackendPlugin({\n pluginId: 'statuspage',\n register(env) {\n env.registerInit({\n deps: {\n cache: coreServices.cache,\n httpRouter: coreServices.httpRouter,\n logger: coreServices.logger,\n rootConfig: coreServices.rootConfig,\n },\n async init({ cache, httpRouter, logger, rootConfig }) {\n httpRouter.use(\n await createRouter({\n rootConfig,\n logger,\n cache,\n }),\n );\n },\n });\n },\n});\n"],"names":["createBackendPlugin","coreServices","createRouter"],"mappings":";;;;;AAWO,MAAM,mBAAmBA,oCAAA,CAAoB;AAAA,EAClD,QAAA,EAAU,YAAA;AAAA,EACV,SAAS,GAAA,EAAK;AACZ,IAAA,GAAA,CAAI,YAAA,CAAa;AAAA,MACf,IAAA,EAAM;AAAA,QACJ,OAAOC,6BAAA,CAAa,KAAA;AAAA,QACpB,YAAYA,6BAAA,CAAa,UAAA;AAAA,QACzB,QAAQA,6BAAA,CAAa,MAAA;AAAA,QACrB,YAAYA,6BAAA,CAAa;AAAA,OAC3B;AAAA,MACA,MAAM,IAAA,CAAK,EAAE,OAAO,UAAA,EAAY,MAAA,EAAQ,YAAW,EAAG;AACpD,QAAA,UAAA,CAAW,GAAA;AAAA,UACT,MAAMC,mBAAA,CAAa;AAAA,YACjB,UAAA;AAAA,YACA,MAAA;AAAA,YACA;AAAA,WACD;AAAA,SACH;AAAA,MACF;AAAA,KACD,CAAA;AAAA,EACH;AACF,CAAC;;;;"}
|
package/dist/service/api.cjs.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var fetch = require('cross-fetch');
|
|
4
|
-
|
|
5
|
-
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
6
|
-
|
|
7
|
-
var fetch__default = /*#__PURE__*/_interopDefaultCompat(fetch);
|
|
8
|
-
|
|
9
3
|
const BASE_URL = "https://api.statuspage.io/v1/pages/";
|
|
10
4
|
const getInstance = (config, name) => {
|
|
11
5
|
const instance = config.find((i) => i.name === name);
|
|
@@ -17,7 +11,7 @@ const getInstance = (config, name) => {
|
|
|
17
11
|
return instance;
|
|
18
12
|
};
|
|
19
13
|
const fetchData = async (url, token) => {
|
|
20
|
-
const response = await
|
|
14
|
+
const response = await fetch(url, {
|
|
21
15
|
headers: {
|
|
22
16
|
Authorization: `OAuth ${token}`,
|
|
23
17
|
Accept: "application/json"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.cjs.js","sources":["../../src/service/api.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"api.cjs.js","sources":["../../src/service/api.ts"],"sourcesContent":["import type {\n Component,\n ComponentGroup,\n} from '@axis-backstage/plugin-statuspage-common';\nimport { StatuspageConfig } from '../types';\n\nconst BASE_URL = 'https://api.statuspage.io/v1/pages/';\n\nconst getInstance = (config: StatuspageConfig, name: string) => {\n const instance = config.find(i => i.name === name);\n\n if (!instance) {\n throw new Error(\n `Config for instance '${name}' not found in statuspage.instances`,\n );\n }\n\n return instance;\n};\n\nconst fetchData = async <T>(url: string, token: string): Promise<T> => {\n const response = await fetch(url, {\n headers: {\n Authorization: `OAuth ${token}`,\n Accept: 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch status page data from ${url}`);\n }\n\n return response.json() as T;\n};\n\nexport const fetchComponents = async (\n name: string,\n config: StatuspageConfig,\n): Promise<Component[]> => {\n const instance = getInstance(config, name);\n const url = `${BASE_URL}${instance.pageid}/components`;\n return fetchData<Component[]>(url, instance.token);\n};\n\nexport const fetchComponentGroups = async (\n name: string,\n config: StatuspageConfig,\n): Promise<ComponentGroup[]> => {\n const instance = getInstance(config, name);\n const url = `${BASE_URL}${instance.pageid}/component-groups`;\n return fetchData(url, instance.token);\n};\n\nexport const getLink = (\n name: string,\n config: StatuspageConfig,\n): string | undefined => {\n const instance = getInstance(config, name);\n return instance.link;\n};\n"],"names":[],"mappings":";;AAMA,MAAM,QAAA,GAAW,qCAAA;AAEjB,MAAM,WAAA,GAAc,CAAC,MAAA,EAA0B,IAAA,KAAiB;AAC9D,EAAA,MAAM,WAAW,MAAA,CAAO,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,SAAS,IAAI,CAAA;AAEjD,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,wBAAwB,IAAI,CAAA,mCAAA;AAAA,KAC9B;AAAA,EACF;AAEA,EAAA,OAAO,QAAA;AACT,CAAA;AAEA,MAAM,SAAA,GAAY,OAAU,GAAA,EAAa,KAAA,KAA8B;AACrE,EAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,IAChC,OAAA,EAAS;AAAA,MACP,aAAA,EAAe,SAAS,KAAK,CAAA,CAAA;AAAA,MAC7B,MAAA,EAAQ;AAAA;AACV,GACD,CAAA;AAED,EAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,sCAAA,EAAyC,GAAG,CAAA,CAAE,CAAA;AAAA,EAChE;AAEA,EAAA,OAAO,SAAS,IAAA,EAAK;AACvB,CAAA;AAEO,MAAM,eAAA,GAAkB,OAC7B,IAAA,EACA,MAAA,KACyB;AACzB,EAAA,MAAM,QAAA,GAAW,WAAA,CAAY,MAAA,EAAQ,IAAI,CAAA;AACzC,EAAA,MAAM,GAAA,GAAM,CAAA,EAAG,QAAQ,CAAA,EAAG,SAAS,MAAM,CAAA,WAAA,CAAA;AACzC,EAAA,OAAO,SAAA,CAAuB,GAAA,EAAK,QAAA,CAAS,KAAK,CAAA;AACnD;AAEO,MAAM,oBAAA,GAAuB,OAClC,IAAA,EACA,MAAA,KAC8B;AAC9B,EAAA,MAAM,QAAA,GAAW,WAAA,CAAY,MAAA,EAAQ,IAAI,CAAA;AACzC,EAAA,MAAM,GAAA,GAAM,CAAA,EAAG,QAAQ,CAAA,EAAG,SAAS,MAAM,CAAA,iBAAA,CAAA;AACzC,EAAA,OAAO,SAAA,CAAU,GAAA,EAAK,QAAA,CAAS,KAAK,CAAA;AACtC;AAEO,MAAM,OAAA,GAAU,CACrB,IAAA,EACA,MAAA,KACuB;AACvB,EAAA,MAAM,QAAA,GAAW,WAAA,CAAY,MAAA,EAAQ,IAAI,CAAA;AACzC,EAAA,OAAO,QAAA,CAAS,IAAA;AAClB;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.cjs.js","sources":["../../src/service/router.ts"],"sourcesContent":["import {\n CacheService,\n LoggerService,\n RootConfigService,\n} from '@backstage/backend-plugin-api';\nimport express from 'express';\nimport Router from 'express-promise-router';\nimport { fetchComponentGroups, fetchComponents, getLink } from './api';\nimport { getStatuspageConfig } from '../config';\n\nexport interface RouterOptions {\n cache: CacheService;\n logger: LoggerService;\n rootConfig: RootConfigService;\n}\n\nconst COMPONENT_GROUPS_KEY = 'component-groups';\nconst COMPONENTS_KEY = 'components';\nconst CACHE_TTL = 1000 * 60 * 2;\n\nexport async function createRouter(\n options: RouterOptions,\n): Promise<express.Router> {\n const { cache, logger, rootConfig } = options;\n logger.info('Setting up router for statuspage-backend');\n const statuspageConfig = getStatuspageConfig(rootConfig);\n\n const router = Router();\n router.use(express.json());\n\n router.get('/fetch-components/:name', async (request, response) => {\n const name = request.params.name;\n let components = (await cache.get(`${COMPONENTS_KEY}-${name}`)) as any;\n if (!components) {\n components = await fetchComponents(name, statuspageConfig);\n await cache.set(`${COMPONENTS_KEY}-${name}`, components, {\n ttl: CACHE_TTL,\n });\n }\n response.json(components);\n });\n\n router.get('/fetch-component-groups/:name', async (request, response) => {\n const name = request.params.name;\n let componentGroups = (await cache.get(\n `${COMPONENT_GROUPS_KEY}-${name}`,\n )) as any;\n if (!componentGroups) {\n componentGroups = await fetchComponentGroups(name, statuspageConfig);\n await cache.set(`${COMPONENT_GROUPS_KEY}-${name}`, componentGroups, {\n ttl: CACHE_TTL,\n });\n }\n response.json(componentGroups);\n });\n\n router.get('/fetch-link/:name', (request, response) => {\n const name = request.params.name;\n response.json({ url: getLink(name, statuspageConfig) || '' });\n });\n\n return router;\n}\n"],"names":["getStatuspageConfig","Router","express","fetchComponents","fetchComponentGroups","getLink"],"mappings":";;;;;;;;;;;;AAgBA,MAAM,
|
|
1
|
+
{"version":3,"file":"router.cjs.js","sources":["../../src/service/router.ts"],"sourcesContent":["import {\n CacheService,\n LoggerService,\n RootConfigService,\n} from '@backstage/backend-plugin-api';\nimport express from 'express';\nimport Router from 'express-promise-router';\nimport { fetchComponentGroups, fetchComponents, getLink } from './api';\nimport { getStatuspageConfig } from '../config';\n\nexport interface RouterOptions {\n cache: CacheService;\n logger: LoggerService;\n rootConfig: RootConfigService;\n}\n\nconst COMPONENT_GROUPS_KEY = 'component-groups';\nconst COMPONENTS_KEY = 'components';\nconst CACHE_TTL = 1000 * 60 * 2;\n\nexport async function createRouter(\n options: RouterOptions,\n): Promise<express.Router> {\n const { cache, logger, rootConfig } = options;\n logger.info('Setting up router for statuspage-backend');\n const statuspageConfig = getStatuspageConfig(rootConfig);\n\n const router = Router();\n router.use(express.json());\n\n router.get('/fetch-components/:name', async (request, response) => {\n const name = request.params.name;\n let components = (await cache.get(`${COMPONENTS_KEY}-${name}`)) as any;\n if (!components) {\n components = await fetchComponents(name, statuspageConfig);\n await cache.set(`${COMPONENTS_KEY}-${name}`, components, {\n ttl: CACHE_TTL,\n });\n }\n response.json(components);\n });\n\n router.get('/fetch-component-groups/:name', async (request, response) => {\n const name = request.params.name;\n let componentGroups = (await cache.get(\n `${COMPONENT_GROUPS_KEY}-${name}`,\n )) as any;\n if (!componentGroups) {\n componentGroups = await fetchComponentGroups(name, statuspageConfig);\n await cache.set(`${COMPONENT_GROUPS_KEY}-${name}`, componentGroups, {\n ttl: CACHE_TTL,\n });\n }\n response.json(componentGroups);\n });\n\n router.get('/fetch-link/:name', (request, response) => {\n const name = request.params.name;\n response.json({ url: getLink(name, statuspageConfig) || '' });\n });\n\n return router;\n}\n"],"names":["getStatuspageConfig","Router","express","fetchComponents","fetchComponentGroups","getLink"],"mappings":";;;;;;;;;;;;AAgBA,MAAM,oBAAA,GAAuB,kBAAA;AAC7B,MAAM,cAAA,GAAiB,YAAA;AACvB,MAAM,SAAA,GAAY,MAAO,EAAA,GAAK,CAAA;AAE9B,eAAsB,aACpB,OAAA,EACyB;AACzB,EAAA,MAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,UAAA,EAAW,GAAI,OAAA;AACtC,EAAA,MAAA,CAAO,KAAK,0CAA0C,CAAA;AACtD,EAAA,MAAM,gBAAA,GAAmBA,2BAAoB,UAAU,CAAA;AAEvD,EAAA,MAAM,SAASC,uBAAA,EAAO;AACtB,EAAA,MAAA,CAAO,GAAA,CAAIC,wBAAA,CAAQ,IAAA,EAAM,CAAA;AAEzB,EAAA,MAAA,CAAO,GAAA,CAAI,yBAAA,EAA2B,OAAO,OAAA,EAAS,QAAA,KAAa;AACjE,IAAA,MAAM,IAAA,GAAO,QAAQ,MAAA,CAAO,IAAA;AAC5B,IAAA,IAAI,UAAA,GAAc,MAAM,KAAA,CAAM,GAAA,CAAI,GAAG,cAAc,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AAC7D,IAAA,IAAI,CAAC,UAAA,EAAY;AACf,MAAA,UAAA,GAAa,MAAMC,mBAAA,CAAgB,IAAA,EAAM,gBAAgB,CAAA;AACzD,MAAA,MAAM,MAAM,GAAA,CAAI,CAAA,EAAG,cAAc,CAAA,CAAA,EAAI,IAAI,IAAI,UAAA,EAAY;AAAA,QACvD,GAAA,EAAK;AAAA,OACN,CAAA;AAAA,IACH;AACA,IAAA,QAAA,CAAS,KAAK,UAAU,CAAA;AAAA,EAC1B,CAAC,CAAA;AAED,EAAA,MAAA,CAAO,GAAA,CAAI,+BAAA,EAAiC,OAAO,OAAA,EAAS,QAAA,KAAa;AACvE,IAAA,MAAM,IAAA,GAAO,QAAQ,MAAA,CAAO,IAAA;AAC5B,IAAA,IAAI,eAAA,GAAmB,MAAM,KAAA,CAAM,GAAA;AAAA,MACjC,CAAA,EAAG,oBAAoB,CAAA,CAAA,EAAI,IAAI,CAAA;AAAA,KACjC;AACA,IAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,MAAA,eAAA,GAAkB,MAAMC,wBAAA,CAAqB,IAAA,EAAM,gBAAgB,CAAA;AACnE,MAAA,MAAM,MAAM,GAAA,CAAI,CAAA,EAAG,oBAAoB,CAAA,CAAA,EAAI,IAAI,IAAI,eAAA,EAAiB;AAAA,QAClE,GAAA,EAAK;AAAA,OACN,CAAA;AAAA,IACH;AACA,IAAA,QAAA,CAAS,KAAK,eAAe,CAAA;AAAA,EAC/B,CAAC,CAAA;AAED,EAAA,MAAA,CAAO,GAAA,CAAI,mBAAA,EAAqB,CAAC,OAAA,EAAS,QAAA,KAAa;AACrD,IAAA,MAAM,IAAA,GAAO,QAAQ,MAAA,CAAO,IAAA;AAC5B,IAAA,QAAA,CAAS,IAAA,CAAK,EAAE,GAAA,EAAKC,WAAA,CAAQ,MAAM,gBAAgB,CAAA,IAAK,IAAI,CAAA;AAAA,EAC9D,CAAC,CAAA;AAED,EAAA,OAAO,MAAA;AACT;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axis-backstage/plugin-statuspage-backend",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.3",
|
|
4
4
|
"main": "dist/index.cjs.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -32,17 +32,16 @@
|
|
|
32
32
|
"postpack": "backstage-cli package postpack"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@axis-backstage/plugin-statuspage-common": "^0.9.
|
|
36
|
-
"@backstage/backend-plugin-api": "^1.
|
|
37
|
-
"@backstage/config": "^1.3.
|
|
35
|
+
"@axis-backstage/plugin-statuspage-common": "^0.9.1",
|
|
36
|
+
"@backstage/backend-plugin-api": "^1.9.0",
|
|
37
|
+
"@backstage/config": "^1.3.7",
|
|
38
38
|
"@types/express": "*",
|
|
39
|
-
"cross-fetch": "^4.0.0",
|
|
40
39
|
"express": "^4.17.1",
|
|
41
40
|
"express-promise-router": "^4.1.0"
|
|
42
41
|
},
|
|
43
42
|
"devDependencies": {
|
|
44
|
-
"@backstage/backend-defaults": "^0.
|
|
45
|
-
"@backstage/cli": "^0.
|
|
43
|
+
"@backstage/backend-defaults": "^0.17.0",
|
|
44
|
+
"@backstage/cli": "^0.36.1"
|
|
46
45
|
},
|
|
47
46
|
"files": [
|
|
48
47
|
"dist",
|