diff --git a/dashcaddy-api/src/app.js b/dashcaddy-api/src/app.js index 766060a..576ed39 100644 --- a/dashcaddy-api/src/app.js +++ b/dashcaddy-api/src/app.js @@ -17,41 +17,41 @@ const { errorResponse, ok } = require('./utils/responses'); const { asyncHandler } = require('./utils/async-handler'); // Managers and utilities -const StateManager = require('managers/state-manager'); +const StateManager = require('.//state-manager'); const platformPaths = require('../platform-paths'); -const { LicenseManager } = require('managers/license-manager'); -const credentialManager = require('managers/credential-manager'); -const authManager = require('managers/auth-manager'); -const dockerSecurity = require('security/docker-security'); -const auditLogger = require('security/audit-logger'); -const portLockManager = require('managers/port-lock-manager'); -const resourceMonitor = require('managers/resource-monitor'); -const backupManager = require('utilities/backup-manager'); -const healthChecker = require('monitoring/health-checker'); -const updateManager = require('managers/update-manager'); -const selfUpdater = require('docker/self-updater'); -const configureMiddleware = require('utilities/middleware'); -const { validateStartupConfig: _validateStartupConfig, syncHealthCheckerServices } = require('utilities/startup-validator'); -const { CSRF_HEADER_NAME } = require('security/csrf-protection'); -const { resolveServiceUrl } = require('utilities/url-resolver'); -const metrics = require('monitoring/metrics'); -const { validateURL } = require('security/input-validator'); +const { LicenseManager } = require('.//license-manager'); +const credentialManager = require('.//credential-manager'); +const authManager = require('.//auth-manager'); +const dockerSecurity = require('.//docker-security'); +const auditLogger = require('.//audit-logger'); +const portLockManager = require('.//port-lock-manager'); +const resourceMonitor = require('.//resource-monitor'); +const backupManager = require('.//backup-manager'); +const healthChecker = require('.//health-checker'); +const updateManager = require('.//update-manager'); +const selfUpdater = require('.//self-updater'); +const configureMiddleware = require('.//middleware'); +const { validateStartupConfig: _validateStartupConfig, syncHealthCheckerServices } = require('.//startup-validator'); +const { CSRF_HEADER_NAME } = require('.//csrf-protection'); +const { resolveServiceUrl } = require('.//url-resolver'); +const metrics = require('.//metrics'); +const { validateURL } = require('.//input-validator'); // Optional modules let dockerMaintenance, logDigest; -try { dockerMaintenance = require('docker/docker-maintenance'); } catch (_) { /* optional module */ } -try { logDigest = require('security/log-digest'); } catch (_) { /* optional module */ } +try { dockerMaintenance = require('.//docker-maintenance'); } catch (_) { /* optional module */ } +try { logDigest = require('.//log-digest'); } catch (_) { /* optional module */ } // Workflow engine (bundled workflows) let bundledWorkflowsModule; let workflowEngine = null; try { - bundledWorkflowsModule = require('recipes/bundled-workflows'); + bundledWorkflowsModule = require('.//bundled-workflows'); } catch (_) { /* optional module */ } // Templates -const { APP_TEMPLATES, TEMPLATE_CATEGORIES, DIFFICULTY_LEVELS } = require('docker/app-templates'); -const { RECIPE_TEMPLATES, RECIPE_CATEGORIES } = require('recipes/recipe-templates'); +const { APP_TEMPLATES, TEMPLATE_CATEGORIES, DIFFICULTY_LEVELS } = require('.//app-templates'); +const { RECIPE_TEMPLATES, RECIPE_CATEGORIES } = require('.//recipe-templates'); // Route modules const healthRoutes = require('../routes/health'); @@ -81,17 +81,17 @@ const dockerResourcesRoutes = require('../routes/docker-resources'); const eventsRoutes = require('../routes/events'); const workflowsRoutes = require('../routes/workflows'); const dependenciesRoutes = require('../routes/dependencies'); -const DependencyManager = require('managers/dependency-manager'); +const DependencyManager = require('.//dependency-manager'); const autoRestartRoutes = require('../routes/auto-restart'); const configDriftRoutes = require('../routes/config-drift'); const sslMonitorRoutes = require('../routes/ssl-monitor'); -const { AutoRestartManager } = require('managers/auto-restart-manager'); -const { ConfigDriftDetector } = require('managers/config-drift-detector'); -const SSLMonitor = require('monitoring/ssl-monitor'); -const DNSPropagationChecker = require('dns/dns-propagation'); +const { AutoRestartManager } = require('.//auto-restart-manager'); +const { ConfigDriftDetector } = require('.//config-drift-detector'); +const SSLMonitor = require('.//ssl-monitor'); +const DNSPropagationChecker = require('./dns/dns-propagation'); // Constants -const { APP } = require('utilities/constants'); +const { APP } = require('.//constants'); /** * Create and configure the Express application @@ -233,15 +233,15 @@ async function createApp() { auditLogger, authManager, log, - cryptoUtils: require('security/crypto-utils'), + cryptoUtils: require('.//crypto-utils'), isValidContainerId, isTailscaleIP, getTailscaleStatus, - RATE_LIMITS: require('utilities/constants').RATE_LIMITS, - LIMITS: require('utilities/constants').LIMITS, - APP: require('utilities/constants').APP, - CACHE_CONFIGS: require('utilities/cache-config').CACHE_CONFIGS, - createCache: require('utilities/cache-config').createCache, + RATE_LIMITS: require('.//constants').RATE_LIMITS, + LIMITS: require('.//constants').LIMITS, + APP: require('.//constants').APP, + CACHE_CONFIGS: require('.//cache-config').CACHE_CONFIGS, + createCache: require('.//cache-config').createCache, }); const { strictLimiter } = middlewareResult; @@ -254,7 +254,7 @@ async function createApp() { // eslint-disable-next-line require-await -- may grow awaits as config loading evolves async function readConfig() { - const { readJsonFile } = require('utilities/fs-helpers'); + const { readJsonFile } = require('.//fs-helpers'); return readJsonFile(config.CONFIG_FILE, {}); } @@ -277,7 +277,7 @@ async function createApp() { async function saveTotpConfig() { try { - const { writeJsonFile } = require('utilities/fs-helpers'); + const { writeJsonFile } = require('.//fs-helpers'); await writeJsonFile(config.TOTP_CONFIG_FILE, totpConfig); } catch (e) { log.error('config', 'Could not save TOTP config', { error: e.message }); @@ -776,7 +776,7 @@ async function createApp() { // Lightweight probe endpoint app.get('/probe/:id', boundAsyncHandler(async (req, res) => { const id = req.params.id; - const { exists } = require('utilities/fs-helpers'); + const { exists } = require('.//fs-helpers'); let service = null; if (id !== 'internet' && await exists(config.SERVICES_FILE)) { @@ -939,7 +939,7 @@ async function createApp() { app.get('/api/v1/docs/spec', boundAsyncHandler(async (req, res) => { const path = require('path'); - const { exists } = require('utilities/fs-helpers'); + const { exists } = require('.//fs-helpers'); const fsp = require('fs').promises; const specPath = path.join(__dirname, '../openapi.yaml'); @@ -952,7 +952,7 @@ async function createApp() { }, 'api-docs-spec')); // Error handlers (MUST be last) - const { notFoundHandler, errorMiddleware } = require('utilities/error-handler'); + const { notFoundHandler, errorMiddleware } = require('.//error-handler'); app.use('/api', notFoundHandler); app.use(errorMiddleware);