@sync-in/server
Version:
The secure, open-source platform for file storage, sharing, collaboration, and sync
78 lines (77 loc) • 3.06 kB
JavaScript
/*
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
* This file is part of Sync-in | The open source file sync and share solution
* See the LICENSE file for licensing details
*/ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: Object.getOwnPropertyDescriptor(all, name).get
});
}
_export(exports, {
get configuration () {
return configuration;
},
get exportConfiguration () {
return exportConfiguration;
},
get serverConfig () {
return serverConfig;
}
});
const _nodepath = require("node:path");
const _auth = require("../authentication/constants/auth");
const _tokeninterface = require("../authentication/interfaces/token.interface");
const _functions = require("../common/functions");
const _configloader = require("./config.loader");
const _configvalidation = require("./config.validation");
const configuration = loadConfiguration();
const serverConfig = {
twoFaEnabled: configuration.auth.mfa.totp.enabled,
mailServerEnabled: !!configuration.mail?.host,
fileEditors: {
collabora: configuration.applications.files.collabora.enabled,
onlyoffice: configuration.applications.files.onlyoffice.enabled
}
};
const exportConfiguration = (reload = false)=>reload ? loadConfiguration() : configuration;
function loadConfiguration() {
const config = (0, _configloader.configLoader)();
// AUTHENTICATION
// CSRF & WS & 2FA settings
config.auth.token[_tokeninterface.TOKEN_TYPE.CSRF] = {
...config.auth.token[_tokeninterface.TOKEN_TYPE.REFRESH],
name: _auth.CSRF_KEY
};
config.auth.token[_tokeninterface.TOKEN_TYPE.WS] = {
...config.auth.token[_tokeninterface.TOKEN_TYPE.REFRESH],
name: _auth.WS_KEY
};
config.auth.token[_tokeninterface.TOKEN_TYPE.ACCESS_2FA] = {
...config.auth.token[_tokeninterface.TOKEN_TYPE.ACCESS],
name: _auth.ACCESS_KEY,
expiration: _auth.TWO_FA_VERIFY_EXPIRATION
};
config.auth.token[_tokeninterface.TOKEN_TYPE.CSRF_2FA] = {
...config.auth.token[_tokeninterface.TOKEN_TYPE.CSRF],
expiration: _auth.TWO_FA_VERIFY_EXPIRATION
};
// APPLICATIONS CONFIGURATION
// SPACES & FILES
if (!config.applications.files.dataPath) {
throw new Error('dataPath is not defined in environment.yaml');
}
config.applications.files.usersPath = (0, _nodepath.join)(config.applications.files.dataPath, 'users');
config.applications.files.spacesPath = (0, _nodepath.join)(config.applications.files.dataPath, 'spaces');
config.applications.files.tmpPath = (0, _nodepath.join)(config.applications.files.dataPath, 'tmp');
return (0, _functions.transformAndValidate)(_configvalidation.GlobalConfig, config, {
exposeDefaultValues: true
}, {
skipMissingProperties: false
});
}
//# sourceMappingURL=config.environment.js.map