UNPKG

@sync-in/server

Version:

The secure, open-source platform for file storage, sharing, collaboration, and sync

78 lines (77 loc) 3.06 kB
/* * 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