@axis-backstage/plugin-statuspage-backend 0.6.0 → 0.8.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/CHANGELOG.md +18 -0
- package/README.md +2 -41
- package/dist/index.cjs.js +0 -2
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2 -25
- package/dist/plugin.cjs.js +7 -5
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/service/router.cjs.js +12 -8
- package/dist/service/router.cjs.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @axis-backstage/plugin-statuspage-backend
|
|
2
2
|
|
|
3
|
+
## 0.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 86c01b7: Bumped to Backstage 1.40
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [86c01b7]
|
|
12
|
+
- @axis-backstage/plugin-statuspage-common@0.7.0
|
|
13
|
+
|
|
14
|
+
## 0.7.0
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- e6bcc2f: - 6939770: **BREAKING**: The `statuspage-backend` plugin has been migrated to the new backend system. If
|
|
19
|
+
you are using the new backend system module, this does not affect you.
|
|
20
|
+
|
|
3
21
|
## 0.6.0
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -19,47 +19,8 @@ yarn --cwd packages/backend add @axis-backstage/plugin-statuspage-backend
|
|
|
19
19
|
|
|
20
20
|
### Integrating
|
|
21
21
|
|
|
22
|
-
Here's how to get the backend plugin up and running
|
|
23
|
-
|
|
24
|
-
1. Create a new file named `packages/backend/src/plugins/statuspage.ts`, and add the following to it:
|
|
25
|
-
|
|
26
|
-
```ts
|
|
27
|
-
import { PluginEnvironment } from '../types';
|
|
28
|
-
import { createRouter } from '@axis-backstage/plugin-statuspage-backend';
|
|
29
|
-
import { Router } from 'express';
|
|
30
|
-
|
|
31
|
-
export default async function createPlugin(
|
|
32
|
-
env: PluginEnvironment,
|
|
33
|
-
): Promise<Router> {
|
|
34
|
-
return await createRouter({
|
|
35
|
-
logger: env.logger,
|
|
36
|
-
config: env.config,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
2. Wire this into the overall backend router by adding the following to `packages/backend/src/index.ts`:
|
|
42
|
-
|
|
43
|
-
```ts
|
|
44
|
-
import statuspage from './plugins/statuspage';
|
|
45
|
-
...
|
|
46
|
-
|
|
47
|
-
async function main() {
|
|
48
|
-
// Add this line under the other lines that follow the useHotMemoize pattern
|
|
49
|
-
const statuspageEnv = useHotMemoize(module, () => createEnv('statuspage'));
|
|
50
|
-
|
|
51
|
-
....
|
|
52
|
-
|
|
53
|
-
// Add this under the lines that add their routers to apiRouter
|
|
54
|
-
apiRouter.use('/statuspage', authMiddleware, await statuspage(statuspageEnv));
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### New Backend System
|
|
59
|
-
|
|
60
|
-
The Jira Dashboard backend plugin has support for the [new backend system](https://backstage.io/docs/backend-system/). Here is how you can set it up:
|
|
61
|
-
|
|
62
|
-
In your `packages/backend/src/index.ts` make the following changes:
|
|
22
|
+
Here's how to get the backend plugin up and running. In your `packages/backend/src/index.ts` make
|
|
23
|
+
the following changes:
|
|
63
24
|
|
|
64
25
|
```diff
|
|
65
26
|
|
package/dist/index.cjs.js
CHANGED
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var router = require('./service/router.cjs.js');
|
|
6
5
|
var plugin = require('./plugin.cjs.js');
|
|
7
6
|
|
|
8
7
|
|
|
9
8
|
|
|
10
|
-
exports.createRouter = router.createRouter;
|
|
11
9
|
exports.default = plugin.statuspagePlugin;
|
|
12
10
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,33 +1,10 @@
|
|
|
1
1
|
import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
|
|
2
|
-
import { LoggerService } from '@backstage/backend-plugin-api';
|
|
3
|
-
import express from 'express';
|
|
4
|
-
import { Config } from '@backstage/config';
|
|
5
2
|
|
|
6
3
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* @deprecated Please migrate to the new backend system as this will be removed in the future.
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
interface RouterOptions {
|
|
13
|
-
/** The logger instance */
|
|
14
|
-
logger: LoggerService;
|
|
15
|
-
/** Backstage config object */
|
|
16
|
-
config: Config;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Create the router.
|
|
20
|
-
*
|
|
21
|
-
* @deprecated Please migrate to the new backend system as this will be removed in the future.
|
|
22
|
-
* @public
|
|
23
|
-
*/
|
|
24
|
-
declare function createRouter(options: RouterOptions): Promise<express.Router>;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Entrypoint for our plugin.
|
|
4
|
+
* Entrypoint for status page plugin.
|
|
28
5
|
*
|
|
29
6
|
* @public
|
|
30
7
|
*/
|
|
31
8
|
declare const statuspagePlugin: _backstage_backend_plugin_api.BackendFeature;
|
|
32
9
|
|
|
33
|
-
export {
|
|
10
|
+
export { statuspagePlugin as default };
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -8,15 +8,17 @@ const statuspagePlugin = backendPluginApi.createBackendPlugin({
|
|
|
8
8
|
register(env) {
|
|
9
9
|
env.registerInit({
|
|
10
10
|
deps: {
|
|
11
|
-
|
|
11
|
+
cache: backendPluginApi.coreServices.cache,
|
|
12
|
+
httpRouter: backendPluginApi.coreServices.httpRouter,
|
|
12
13
|
logger: backendPluginApi.coreServices.logger,
|
|
13
|
-
|
|
14
|
+
rootConfig: backendPluginApi.coreServices.rootConfig
|
|
14
15
|
},
|
|
15
|
-
async init({
|
|
16
|
+
async init({ cache, httpRouter, logger, rootConfig }) {
|
|
16
17
|
httpRouter.use(
|
|
17
18
|
await router.createRouter({
|
|
18
|
-
|
|
19
|
-
logger
|
|
19
|
+
rootConfig,
|
|
20
|
+
logger,
|
|
21
|
+
cache
|
|
20
22
|
})
|
|
21
23
|
);
|
|
22
24
|
}
|
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
|
|
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,oCAAoB,CAAA;AAAA,EAClD,QAAU,EAAA,YAAA;AAAA,EACV,SAAS,GAAK,EAAA;AACZ,IAAA,GAAA,CAAI,YAAa,CAAA;AAAA,MACf,IAAM,EAAA;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,IAAK,CAAA,EAAE,OAAO,UAAY,EAAA,MAAA,EAAQ,YAAc,EAAA;AACpD,QAAW,UAAA,CAAA,GAAA;AAAA,UACT,MAAMC,mBAAa,CAAA;AAAA,YACjB,UAAA;AAAA,YACA,MAAA;AAAA,YACA;AAAA,WACD;AAAA,SACH;AAAA;AACF,KACD,CAAA;AAAA;AAEL,CAAC;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var rootHttpRouter = require('@backstage/backend-defaults/rootHttpRouter');
|
|
4
4
|
var express = require('express');
|
|
5
5
|
var Router = require('express-promise-router');
|
|
6
6
|
var api = require('./api.cjs.js');
|
|
@@ -13,12 +13,11 @@ var Router__default = /*#__PURE__*/_interopDefaultCompat(Router);
|
|
|
13
13
|
|
|
14
14
|
const COMPONENT_GROUPS_KEY = "component-groups";
|
|
15
15
|
const COMPONENTS_KEY = "components";
|
|
16
|
+
const CACHE_TTL = 1e3 * 60 * 2;
|
|
16
17
|
async function createRouter(options) {
|
|
17
|
-
const { logger,
|
|
18
|
+
const { cache, logger, rootConfig } = options;
|
|
18
19
|
logger.info("Setting up router for statuspage-backend");
|
|
19
|
-
const
|
|
20
|
-
const statuspageConfig = config.getStatuspageConfig(config$1);
|
|
21
|
-
const cache = pluginCache.getClient({ defaultTtl: 1e3 * 60 * 2 });
|
|
20
|
+
const statuspageConfig = config.getStatuspageConfig(rootConfig);
|
|
22
21
|
const router = Router__default.default();
|
|
23
22
|
router.use(express__default.default.json());
|
|
24
23
|
router.get("/fetch-components/:name", async (request, response) => {
|
|
@@ -26,7 +25,9 @@ async function createRouter(options) {
|
|
|
26
25
|
let components = await cache.get(`${COMPONENTS_KEY}-${name}`);
|
|
27
26
|
if (!components) {
|
|
28
27
|
components = await api.fetchComponents(name, statuspageConfig);
|
|
29
|
-
await cache.set(`${COMPONENTS_KEY}-${name}`, components
|
|
28
|
+
await cache.set(`${COMPONENTS_KEY}-${name}`, components, {
|
|
29
|
+
ttl: CACHE_TTL
|
|
30
|
+
});
|
|
30
31
|
}
|
|
31
32
|
response.json(components);
|
|
32
33
|
});
|
|
@@ -37,7 +38,9 @@ async function createRouter(options) {
|
|
|
37
38
|
);
|
|
38
39
|
if (!componentGroups) {
|
|
39
40
|
componentGroups = await api.fetchComponentGroups(name, statuspageConfig);
|
|
40
|
-
await cache.set(`${COMPONENT_GROUPS_KEY}-${name}`, componentGroups
|
|
41
|
+
await cache.set(`${COMPONENT_GROUPS_KEY}-${name}`, componentGroups, {
|
|
42
|
+
ttl: CACHE_TTL
|
|
43
|
+
});
|
|
41
44
|
}
|
|
42
45
|
response.json(componentGroups);
|
|
43
46
|
});
|
|
@@ -45,7 +48,8 @@ async function createRouter(options) {
|
|
|
45
48
|
const name = request.params.name;
|
|
46
49
|
response.json({ url: api.getLink(name, statuspageConfig) || "" });
|
|
47
50
|
});
|
|
48
|
-
|
|
51
|
+
const middleware = rootHttpRouter.MiddlewareFactory.create({ logger, config: rootConfig });
|
|
52
|
+
router.use(middleware.error());
|
|
49
53
|
return router;
|
|
50
54
|
}
|
|
51
55
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.cjs.js","sources":["../../src/service/router.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"router.cjs.js","sources":["../../src/service/router.ts"],"sourcesContent":["import { MiddlewareFactory } from '@backstage/backend-defaults/rootHttpRouter';\nimport {\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 const middleware = MiddlewareFactory.create({ logger, config: rootConfig });\n router.use(middleware.error());\n return router;\n}\n"],"names":["getStatuspageConfig","Router","express","fetchComponents","fetchComponentGroups","getLink","MiddlewareFactory"],"mappings":";;;;;;;;;;;;;AAiBA,MAAM,oBAAuB,GAAA,kBAAA;AAC7B,MAAM,cAAiB,GAAA,YAAA;AACvB,MAAM,SAAA,GAAY,MAAO,EAAK,GAAA,CAAA;AAE9B,eAAsB,aACpB,OACyB,EAAA;AACzB,EAAA,MAAM,EAAE,KAAA,EAAO,MAAQ,EAAA,UAAA,EAAe,GAAA,OAAA;AACtC,EAAA,MAAA,CAAO,KAAK,0CAA0C,CAAA;AACtD,EAAM,MAAA,gBAAA,GAAmBA,2BAAoB,UAAU,CAAA;AAEvD,EAAA,MAAM,SAASC,uBAAO,EAAA;AACtB,EAAO,MAAA,CAAA,GAAA,CAAIC,wBAAQ,CAAA,IAAA,EAAM,CAAA;AAEzB,EAAA,MAAA,CAAO,GAAI,CAAA,yBAAA,EAA2B,OAAO,OAAA,EAAS,QAAa,KAAA;AACjE,IAAM,MAAA,IAAA,GAAO,QAAQ,MAAO,CAAA,IAAA;AAC5B,IAAI,IAAA,UAAA,GAAc,MAAM,KAAM,CAAA,GAAA,CAAI,GAAG,cAAc,CAAA,CAAA,EAAI,IAAI,CAAE,CAAA,CAAA;AAC7D,IAAA,IAAI,CAAC,UAAY,EAAA;AACf,MAAa,UAAA,GAAA,MAAMC,mBAAgB,CAAA,IAAA,EAAM,gBAAgB,CAAA;AACzD,MAAA,MAAM,MAAM,GAAI,CAAA,CAAA,EAAG,cAAc,CAAI,CAAA,EAAA,IAAI,IAAI,UAAY,EAAA;AAAA,QACvD,GAAK,EAAA;AAAA,OACN,CAAA;AAAA;AAEH,IAAA,QAAA,CAAS,KAAK,UAAU,CAAA;AAAA,GACzB,CAAA;AAED,EAAA,MAAA,CAAO,GAAI,CAAA,+BAAA,EAAiC,OAAO,OAAA,EAAS,QAAa,KAAA;AACvE,IAAM,MAAA,IAAA,GAAO,QAAQ,MAAO,CAAA,IAAA;AAC5B,IAAI,IAAA,eAAA,GAAmB,MAAM,KAAM,CAAA,GAAA;AAAA,MACjC,CAAA,EAAG,oBAAoB,CAAA,CAAA,EAAI,IAAI,CAAA;AAAA,KACjC;AACA,IAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,MAAkB,eAAA,GAAA,MAAMC,wBAAqB,CAAA,IAAA,EAAM,gBAAgB,CAAA;AACnE,MAAA,MAAM,MAAM,GAAI,CAAA,CAAA,EAAG,oBAAoB,CAAI,CAAA,EAAA,IAAI,IAAI,eAAiB,EAAA;AAAA,QAClE,GAAK,EAAA;AAAA,OACN,CAAA;AAAA;AAEH,IAAA,QAAA,CAAS,KAAK,eAAe,CAAA;AAAA,GAC9B,CAAA;AAED,EAAA,MAAA,CAAO,GAAI,CAAA,mBAAA,EAAqB,CAAC,OAAA,EAAS,QAAa,KAAA;AACrD,IAAM,MAAA,IAAA,GAAO,QAAQ,MAAO,CAAA,IAAA;AAC5B,IAAS,QAAA,CAAA,IAAA,CAAK,EAAE,GAAK,EAAAC,WAAA,CAAQ,MAAM,gBAAgB,CAAA,IAAK,IAAI,CAAA;AAAA,GAC7D,CAAA;AAED,EAAA,MAAM,aAAaC,gCAAkB,CAAA,MAAA,CAAO,EAAE,MAAQ,EAAA,MAAA,EAAQ,YAAY,CAAA;AAC1E,EAAO,MAAA,CAAA,GAAA,CAAI,UAAW,CAAA,KAAA,EAAO,CAAA;AAC7B,EAAO,OAAA,MAAA;AACT;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axis-backstage/plugin-statuspage-backend",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"main": "dist/index.cjs.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
"postpack": "backstage-cli package postpack"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@axis-backstage/plugin-statuspage-common": "^0.
|
|
36
|
-
"@backstage/backend-
|
|
37
|
-
"@backstage/backend-plugin-api": "^1.
|
|
35
|
+
"@axis-backstage/plugin-statuspage-common": "^0.7.0",
|
|
36
|
+
"@backstage/backend-defaults": "^0.11.0",
|
|
37
|
+
"@backstage/backend-plugin-api": "^1.4.0",
|
|
38
38
|
"@backstage/config": "^1.3.2",
|
|
39
39
|
"@types/express": "*",
|
|
40
40
|
"cross-fetch": "^4.0.0",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"express-promise-router": "^4.1.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@backstage/cli": "^0.
|
|
45
|
+
"@backstage/cli": "^0.33.0"
|
|
46
46
|
},
|
|
47
47
|
"files": [
|
|
48
48
|
"dist",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"configSchema": "config.d.ts",
|
|
52
52
|
"typesVersions": {
|
|
53
53
|
"*": {
|
|
54
|
-
"
|
|
55
|
-
"
|
|
54
|
+
"package.json": [
|
|
55
|
+
"package.json"
|
|
56
56
|
]
|
|
57
57
|
}
|
|
58
58
|
},
|