Get conf.yml on client side

This commit is contained in:
aterox 2022-03-06 03:04:41 -05:00
parent 6553f1463d
commit 727f6b1fc0
3 changed files with 3 additions and 13 deletions

View File

@ -27,7 +27,6 @@ const rebuild = require('./services/rebuild-app'); // A script to programmatical
const systemInfo = require('./services/system-info'); // Basic system info, for resource widget
const sslServer = require('./services/ssl-server'); // TLS-enabled web server
const corsProxy = require('./services/cors-proxy'); // Enables API requests to CORS-blocked services
const getConf = require('./services/get-conf'); // Returns the configuration as a JSON object
/* Helper functions, and default config */
const printMessage = require('./services/print-message'); // Function to print welcome msg on start
@ -69,7 +68,7 @@ const method = (m, mw) => (req, res, next) => (req.method === m ? mw(req, res, n
const app = express()
// Serves up static files
.use(express.static(path.join(__dirname, 'dist')))
.use(express.static(path.join(__dirname, 'public'), { index: 'initialization.html' }))
.use(express.static(path.join(__dirname, 'public')))
// Load middlewares for parsing JSON, and supporting HTML5 history routing
.use(express.json({ limit: '1mb' }))
.use(history())
@ -117,14 +116,6 @@ const app = express()
} catch (e) {
res.end(JSON.stringify({ success: false, message: e }));
}
})
// GET endpoint returns the app configuration
.use(ENDPOINTS.getConf, (req, res) => {
try {
res.end(JSON.stringify(getConf()));
} catch (e) {
res.end(JSON.stringify({ success: false, message: e }));
}
});
/* Create HTTP server from app on port, and print welcome message */

View File

@ -2,6 +2,7 @@
import Vue from 'vue';
import Vuex from 'vuex';
import axios from 'axios';
import yaml from 'js-yaml';
import Keys from '@/utils/StoreMutations';
import ConfigAccumulator from '@/utils/ConfigAccumalator';
import { componentVisibility } from '@/utils/ConfigHelpers';
@ -9,7 +10,6 @@ import { applyItemId } from '@/utils/SectionHelpers';
import filterUserSections from '@/utils/CheckSectionVisibility';
import { InfoHandler, InfoKeys } from '@/utils/ErrorHandler';
import { isUserAdmin } from '@/utils/Auth';
import { serviceEndpoints } from '@/utils/defaults';
Vue.use(Vuex);
@ -280,7 +280,7 @@ const store = new Vuex.Store({
/* Called when app first loaded. Reads config and sets state */
async [INITIALIZE_CONFIG]({ commit }) {
// Get the config file from the server and store it for use by the accumulator
commit(SET_REMOTE_CONFIG, (await axios.get(serviceEndpoints.getConf)).data);
commit(SET_REMOTE_CONFIG, yaml.load((await axios.get('conf.yml')).data));
const deepCopy = (json) => JSON.parse(JSON.stringify(json));
const config = deepCopy(new ConfigAccumulator().config());
commit(SET_CONFIG, config);

View File

@ -42,7 +42,6 @@ module.exports = {
statusCheck: '/status-check',
save: '/config-manager/save',
rebuild: '/config-manager/rebuild',
getConf: '/config-manager/get',
systemInfo: '/system-info',
corsProxy: '/cors-proxy',
},