@backstage-community/plugin-kafka-backend 0.3.21 → 0.3.22
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 +8 -0
- package/alpha/package.json +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/service/router.cjs.js +4 -2
- package/dist/service/router.cjs.js.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @backstage-community/plugin-kafka-backend
|
|
2
2
|
|
|
3
|
+
## 0.3.22
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 179ee02: Removed usages and references of `@backstage/backend-common`
|
|
8
|
+
|
|
9
|
+
Deprecated `createRouter` and its router options in favour of the new backend system.
|
|
10
|
+
|
|
3
11
|
## 0.3.21
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/alpha/package.json
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -2,12 +2,18 @@ import express from 'express';
|
|
|
2
2
|
import { Config } from '@backstage/config';
|
|
3
3
|
import { LoggerService } from '@backstage/backend-plugin-api';
|
|
4
4
|
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Please migrate to the new backend system as this will be removed in the future.
|
|
7
|
+
*
|
|
8
|
+
* @public */
|
|
6
9
|
interface RouterOptions {
|
|
7
10
|
logger: LoggerService;
|
|
8
11
|
config: Config;
|
|
9
12
|
}
|
|
10
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Please migrate to the new backend system as this will be removed in the future.
|
|
15
|
+
*
|
|
16
|
+
* @public */
|
|
11
17
|
declare function createRouter(options: RouterOptions): Promise<express.Router>;
|
|
12
18
|
|
|
13
19
|
export { type RouterOptions, createRouter };
|
|
@@ -6,6 +6,7 @@ var errors = require('@backstage/errors');
|
|
|
6
6
|
var KafkaApi = require('./KafkaApi.cjs.js');
|
|
7
7
|
var _ = require('lodash');
|
|
8
8
|
var ClusterReader = require('../config/ClusterReader.cjs.js');
|
|
9
|
+
var rootHttpRouter = require('@backstage/backend-defaults/rootHttpRouter');
|
|
9
10
|
|
|
10
11
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
11
12
|
|
|
@@ -13,7 +14,7 @@ var express__default = /*#__PURE__*/_interopDefaultCompat(express);
|
|
|
13
14
|
var Router__default = /*#__PURE__*/_interopDefaultCompat(Router);
|
|
14
15
|
var ___default = /*#__PURE__*/_interopDefaultCompat(_);
|
|
15
16
|
|
|
16
|
-
const makeRouter = (logger, kafkaApis) => {
|
|
17
|
+
const makeRouter = (logger, kafkaApis, config) => {
|
|
17
18
|
const router = Router__default.default();
|
|
18
19
|
router.use(express__default.default.json());
|
|
19
20
|
const kafkaApiByClusterName = ___default.default.keyBy(kafkaApis, (item) => item.name);
|
|
@@ -47,6 +48,7 @@ const makeRouter = (logger, kafkaApis) => {
|
|
|
47
48
|
);
|
|
48
49
|
res.json({ consumerId, offsets: groupWithTopicOffsets.flat() });
|
|
49
50
|
});
|
|
51
|
+
router.use(rootHttpRouter.MiddlewareFactory.create({ config, logger }).error());
|
|
50
52
|
return router;
|
|
51
53
|
};
|
|
52
54
|
async function createRouter(options) {
|
|
@@ -60,7 +62,7 @@ async function createRouter(options) {
|
|
|
60
62
|
name: cluster.name,
|
|
61
63
|
api: new KafkaApi.KafkaJsApiImpl({ clientId, logger, ...cluster })
|
|
62
64
|
}));
|
|
63
|
-
return makeRouter(logger, kafkaApis);
|
|
65
|
+
return makeRouter(logger, kafkaApis, options.config);
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
exports.createRouter = createRouter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.cjs.js","sources":["../../src/service/router.ts"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport express from 'express';\nimport Router from 'express-promise-router';\nimport { Config } from '@backstage/config';\nimport { NotFoundError } from '@backstage/errors';\nimport { KafkaApi, KafkaJsApiImpl } from './KafkaApi';\nimport _ from 'lodash';\nimport { getClusterDetails } from '../config/ClusterReader';\nimport { LoggerService } from '@backstage/backend-plugin-api';\n\n
|
|
1
|
+
{"version":3,"file":"router.cjs.js","sources":["../../src/service/router.ts"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport express from 'express';\nimport Router from 'express-promise-router';\nimport { Config } from '@backstage/config';\nimport { NotFoundError } from '@backstage/errors';\nimport { KafkaApi, KafkaJsApiImpl } from './KafkaApi';\nimport _ from 'lodash';\nimport { getClusterDetails } from '../config/ClusterReader';\nimport { LoggerService } from '@backstage/backend-plugin-api';\nimport { MiddlewareFactory } from '@backstage/backend-defaults/rootHttpRouter';\n\n/**\n * @deprecated Please migrate to the new backend system as this will be removed in the future.\n *\n * @public */\nexport interface RouterOptions {\n logger: LoggerService;\n config: Config;\n}\n\nexport interface ClusterApi {\n name: string;\n api: KafkaApi;\n}\n\nexport const makeRouter = (\n logger: LoggerService,\n kafkaApis: ClusterApi[],\n config: Config,\n): express.Router => {\n const router = Router();\n router.use(express.json());\n\n const kafkaApiByClusterName = _.keyBy(kafkaApis, item => item.name);\n\n router.get('/consumers/:clusterId/:consumerId/offsets', async (req, res) => {\n const clusterId = req.params.clusterId;\n const consumerId = req.params.consumerId;\n\n const kafkaApi = kafkaApiByClusterName[clusterId];\n if (!kafkaApi) {\n const candidates = Object.keys(kafkaApiByClusterName)\n .map(n => `\"${n}\"`)\n .join(', ');\n throw new NotFoundError(\n `Found no configured cluster \"${clusterId}\", candidates are ${candidates}`,\n );\n }\n\n logger.info(\n `Fetch consumer group ${consumerId} offsets from cluster ${clusterId}`,\n );\n\n const groupOffsets = await kafkaApi.api.fetchGroupOffsets(consumerId);\n\n const groupWithTopicOffsets = await Promise.all(\n groupOffsets.map(async ({ topic, partitions }) => {\n const topicOffsets = _.keyBy(\n await kafkaApi.api.fetchTopicOffsets(topic),\n partition => partition.id,\n );\n\n return partitions.map(partition => ({\n topic: topic,\n partitionId: partition.id,\n groupOffset: partition.offset,\n topicOffset: topicOffsets[partition.id].offset,\n }));\n }),\n );\n\n res.json({ consumerId, offsets: groupWithTopicOffsets.flat() });\n });\n\n router.use(MiddlewareFactory.create({ config, logger }).error());\n\n return router;\n};\n\n/**\n * @deprecated Please migrate to the new backend system as this will be removed in the future.\n *\n * @public */\nexport async function createRouter(\n options: RouterOptions,\n): Promise<express.Router> {\n const logger = options.logger;\n\n logger.info('Initializing Kafka backend');\n\n const clientId = options.config.getString('kafka.clientId');\n\n const clusters = getClusterDetails(\n options.config.getConfigArray('kafka.clusters'),\n );\n\n const kafkaApis = clusters.map(cluster => ({\n name: cluster.name,\n api: new KafkaJsApiImpl({ clientId, logger, ...cluster }),\n }));\n\n return makeRouter(logger, kafkaApis, options.config);\n}\n"],"names":["Router","express","_","NotFoundError","MiddlewareFactory","getClusterDetails","KafkaJsApiImpl"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage-community/plugin-kafka-backend",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.22",
|
|
4
4
|
"description": "A Backstage backend plugin that integrates towards Kafka",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "backend-plugin",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"test": "backstage-cli package test"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@backstage/backend-
|
|
58
|
+
"@backstage/backend-defaults": "^0.5.2",
|
|
59
59
|
"@backstage/backend-plugin-api": "^1.0.1",
|
|
60
60
|
"@backstage/config": "^1.2.0",
|
|
61
61
|
"@backstage/errors": "^1.2.4",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"lodash": "^4.17.21"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
+
"@backstage/backend-test-utils": "1.0.2",
|
|
69
70
|
"@backstage/cli": "^0.28.0",
|
|
70
71
|
"@types/jest-when": "^3.5.0",
|
|
71
72
|
"@types/lodash": "^4.14.151",
|