@oas-tools/oas-telemetry 0.3.0 → 0.5.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/LICENSE +0 -0
- package/README.md +151 -133
- package/dist/client.cjs +14 -0
- package/dist/config.cjs +27 -0
- package/dist/controllers/pluginController.cjs +118 -0
- package/dist/controllers/telemetryController.cjs +92 -0
- package/dist/controllers/uiController.cjs +78 -0
- package/dist/exporters/InMemoryDbExporter.cjs +45 -42
- package/dist/exporters/consoleExporter.cjs +52 -0
- package/dist/exporters/dynamicExporter.cjs +64 -0
- package/dist/index.cjs +61 -248
- package/dist/middleware/auth.cjs +17 -0
- package/dist/middleware/authMiddleware.cjs +19 -0
- package/dist/openTelemetry.cjs +20 -0
- package/dist/routes/authRoutes.cjs +79 -0
- package/dist/routes/telemetryRoutes.cjs +31 -0
- package/{src/ui.js → dist/services/uiService.cjs} +1140 -813
- package/dist/telemetry.cjs +0 -0
- package/dist/types/exporters/InMemoryDbExporter.d.ts +16 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/telemetry.d.ts +2 -0
- package/dist/types/ui.d.ts +4 -0
- package/dist/ui.cjs +0 -0
- package/package.json +75 -71
- package/src/config.js +19 -0
- package/src/controllers/pluginController.js +115 -0
- package/src/controllers/telemetryController.js +68 -0
- package/src/controllers/uiController.js +69 -0
- package/src/dev/ui/login.html +32 -0
- package/src/exporters/InMemoryDbExporter.js +180 -175
- package/src/exporters/consoleExporter.js +47 -0
- package/src/exporters/dynamicExporter.js +62 -0
- package/src/index.js +85 -307
- package/src/middleware/authMiddleware.js +14 -0
- package/src/openTelemetry.js +22 -0
- package/src/routes/authRoutes.js +53 -0
- package/src/routes/telemetryRoutes.js +38 -0
- package/src/services/uiService.js +1520 -0
- package/src/telemetry.js +0 -25
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _config = require("../config.cjs");
|
|
8
|
+
var _express = require("express");
|
|
9
|
+
var _cookie = require("cookie");
|
|
10
|
+
var _uiService = _interopRequireDefault(require("../services/uiService.cjs"));
|
|
11
|
+
var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken"));
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
const router = (0, _express.Router)();
|
|
14
|
+
router.post('/login', (req, res) => {
|
|
15
|
+
try {
|
|
16
|
+
const {
|
|
17
|
+
password
|
|
18
|
+
} = req.body;
|
|
19
|
+
if (password === _config.globalOasTlmConfig.password) {
|
|
20
|
+
let options = {
|
|
21
|
+
maxAge: _config.globalOasTlmConfig.apiKeyMaxAge,
|
|
22
|
+
httpOnly: true,
|
|
23
|
+
// The cookie only accessible by the web server
|
|
24
|
+
secure: true,
|
|
25
|
+
// Only sends cookie over https
|
|
26
|
+
signed: false // Indicates if the cookie should be signed
|
|
27
|
+
};
|
|
28
|
+
const apiKey = _jsonwebtoken.default.sign({
|
|
29
|
+
password: _config.globalOasTlmConfig.password
|
|
30
|
+
}, _config.globalOasTlmConfig.jwtSecret);
|
|
31
|
+
res.cookie('apiKey', apiKey, options);
|
|
32
|
+
return res.status(200).json({
|
|
33
|
+
valid: true,
|
|
34
|
+
message: 'API Key is valid'
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
res.status(400).json({
|
|
38
|
+
valid: false,
|
|
39
|
+
message: 'Invalid API Key'
|
|
40
|
+
});
|
|
41
|
+
} catch (error) {
|
|
42
|
+
console.log("Error: ", error);
|
|
43
|
+
res.status(500).json({
|
|
44
|
+
valid: false,
|
|
45
|
+
message: 'Internal server error'
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
router.get('/logout', (req, res) => {
|
|
50
|
+
res.clearCookie('apiKey');
|
|
51
|
+
res.redirect(_config.globalOasTlmConfig.baseURL + '/login');
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
//check is used in the UI (http polling) to validate the Cookies to redirect to the login page if needed
|
|
55
|
+
router.get('/check', (req, res) => {
|
|
56
|
+
if (!req.cookies.apiKey) {
|
|
57
|
+
return res.status(200).json({
|
|
58
|
+
valid: false,
|
|
59
|
+
message: 'API Key is invalid'
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
const decoded = _jsonwebtoken.default.verify(req.cookies.apiKey, _config.globalOasTlmConfig.jwtSecret);
|
|
63
|
+
if (decoded.password === _config.globalOasTlmConfig.password) {
|
|
64
|
+
return res.status(200).json({
|
|
65
|
+
valid: true,
|
|
66
|
+
message: 'API Key is valid'
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
res.status(200).json({
|
|
70
|
+
valid: false,
|
|
71
|
+
message: 'Invalid API Key'
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
router.get('/login', (req, res) => {
|
|
75
|
+
const baseURL = _config.globalOasTlmConfig.baseURL;
|
|
76
|
+
res.send((0, _uiService.default)(baseURL).login);
|
|
77
|
+
});
|
|
78
|
+
var _default = exports.default = router;
|
|
79
|
+
module.exports = exports.default;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.telemetryRoutes = exports.default = void 0;
|
|
7
|
+
var _express = require("express");
|
|
8
|
+
var _uiController = require("../controllers/uiController.cjs");
|
|
9
|
+
var _telemetryController = require("../controllers/telemetryController.cjs");
|
|
10
|
+
var _pluginController = require("../controllers/pluginController.cjs");
|
|
11
|
+
const telemetryRoutes = exports.telemetryRoutes = (0, _express.Router)();
|
|
12
|
+
|
|
13
|
+
// Main Pages
|
|
14
|
+
telemetryRoutes.get('/', _uiController.mainPage);
|
|
15
|
+
telemetryRoutes.get('/detail/*', _uiController.detailPage);
|
|
16
|
+
telemetryRoutes.get('/spec', _uiController.specLoader);
|
|
17
|
+
telemetryRoutes.get('/api', _uiController.apiPage);
|
|
18
|
+
|
|
19
|
+
// Telemetry Control
|
|
20
|
+
telemetryRoutes.get('/start', _telemetryController.startTelemetry);
|
|
21
|
+
telemetryRoutes.get('/stop', _telemetryController.stopTelemetry);
|
|
22
|
+
telemetryRoutes.get('/status', _telemetryController.statusTelemetry);
|
|
23
|
+
telemetryRoutes.get('/reset', _telemetryController.resetTelemetry);
|
|
24
|
+
telemetryRoutes.get('/list', _telemetryController.listTelemetry);
|
|
25
|
+
telemetryRoutes.post('/find', _telemetryController.findTelemetry);
|
|
26
|
+
telemetryRoutes.get('/heapStats', _telemetryController.heapStats);
|
|
27
|
+
|
|
28
|
+
// Plugins
|
|
29
|
+
telemetryRoutes.get('/plugins', _pluginController.listPlugins);
|
|
30
|
+
telemetryRoutes.post('/plugins', _pluginController.registerPlugin);
|
|
31
|
+
var _default = exports.default = telemetryRoutes;
|