Files
ProxmoxAAS-API/src/main.js
T
Arthur Lu 18590011cc major rework of backend loading and usage:
- split config from user data to config.json, add config.hson.template
- moved default user data localdb to root folder
- moved pve, localdb, ldap backend handlers to backends sub folder
- add dynamic loading of all backends
- add dynamic mapping for auth backends to support multiple auth sources
- update affected endpoints
2024-01-06 22:36:18 +00:00

53 lines
1.4 KiB
JavaScript

import express from "express";
import bodyParser from "body-parser";
import cookieParser from "cookie-parser";
import cors from "cors";
import morgan from "morgan";
import parseArgs from "minimist";
import * as utils from "./utils.js";
import _backends from "./backends/backends.js";
global.argv = parseArgs(process.argv.slice(2), {
default: {
package: "package.json",
config: "config/config.json"
}
});
global.utils = utils;
global.package = global.utils.readJSONFile(global.argv.package);
global.config = global.utils.readJSONFile(global.argv.config);
await _backends();
const app = express();
global.app = app;
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(cors({ origin: global.config.application.hostname }));
app.use(morgan("combined"));
global.server = app.listen(global.config.application.listenPort, () => {
console.log(`proxmoxaas-api v${global.package.version} listening on port ${global.config.application.listenPort}`);
});
global.utils.recursiveImportRoutes(app, "/api", "routes");
/**
* GET - get API version
* responses:
* - 200: {version: string}
*/
app.get("/api/version", (req, res) => {
res.status(200).send({ version: global.package.version });
});
/**
* GET - echo request
* responses:
* - 200: {body: request.body, cookies: request.cookies}
*/
app.get("/api/echo", (req, res) => {
res.status(200).send({ body: req.body, cookies: req.cookies });
});