From 0abc1442cb6f6092e5f13cbb0c05fd6e7c177ea4 Mon Sep 17 00:00:00 2001 From: OfficeServer dgsoft Date: Mon, 6 Oct 2025 19:54:49 +0200 Subject: [PATCH] docs: remove management system, update docs and disable integration --- API-TAGS-DOCUMENTATION.md | 10 ++++- README.md | 3 +- server.js | 90 ++++++++++++++++++++++++++++----------- 3 files changed, 74 insertions(+), 29 deletions(-) diff --git a/API-TAGS-DOCUMENTATION.md b/API-TAGS-DOCUMENTATION.md index a5cb70f..4c76263 100644 --- a/API-TAGS-DOCUMENTATION.md +++ b/API-TAGS-DOCUMENTATION.md @@ -7,7 +7,11 @@ Das Tag-System ermöglicht es, benutzerdefinierte Tags zu erstellen und per REST ### Tags auflisten ``` -GET http://localhost:3000/api/tags +## Hinweis + +Die in früheren Versionen vorhandene Management-Weboberfläche (Port 3000) und die zugehörigen internen REST-APIs wurden entfernt. Die folgenden Management-APIs sind ohne diese Komponente nicht verfügbar. + +Wenn Sie ähnliche Funktionen benötigen, implementieren Sie bitte separate Endpunkte in Ihrem eigenen Service oder re-integrieren Sie ein Management-Modul. ``` ### Neuen Tag erstellen @@ -56,7 +60,9 @@ DELETE http://localhost:3000/api/tags/{id} ### Alle verfügbaren Tags auflisten ``` -GET http://localhost:3000/api/public/tags +## Externe REST APIs + +Die externen Management-APIs sind nicht Teil dieses Kern-Servers. Falls benötigt, schreiben Sie bitte eine separate Management-API, die mit diesem Server kommuniziert. Response: [ diff --git a/README.md b/README.md index b3ca509..1b40ff2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # DOCX Template Server -Ein Node.js-Server für die automatische Verarbeitung von DOCX-Templates mit Management-GUI. +Ein Node.js-Server für die automatische Verarbeitung von DOCX-Templates. ## ✨ Features @@ -27,7 +27,6 @@ npm start ### 🌐 **Web-Zugriff:** - **Server:** http://localhost:80/ -- **Management:** http://localhost:3000/ - **Templates:** http://localhost:80/templates/ - **Dokumente:** http://localhost:80/documents/ diff --git a/server.js b/server.js index bd2cd8f..53bf560 100644 --- a/server.js +++ b/server.js @@ -12,31 +12,9 @@ const { faker } = require('@faker-js/faker'); const app = express(); const PORT = process.env.PORT || 80; -// Management-System Integration (falls verfügbar) -let DataSourceManager, CustomTagProcessor; -try { - const managementModules = require('./management/data-sources'); - DataSourceManager = managementModules.DataSourceManager; - CustomTagProcessor = managementModules.CustomTagProcessor; - console.log('✅ Management-System Integration geladen'); -} catch (error) { - console.log('ℹ️ Management-System nicht verfügbar (optional)'); -} - -// Konfiguration laden -function loadManagementConfig() { - try { - const configPath = path.join(__dirname, 'management', 'config.json'); - if (fs.existsSync(configPath)) { - return JSON.parse(fs.readFileSync(configPath, 'utf8')); - } - } catch (error) { - console.log('ℹ️ Management-Konfiguration nicht verfügbar'); - } - return null; -} - -const managementConfig = loadManagementConfig(); +// Management-System Integration removed. Management-related features are disabled. +let DataSourceManager = null, CustomTagProcessor = null; +const managementConfig = null; // Middleware app.use(helmet()); @@ -777,6 +755,68 @@ app.get('/create-test-template', (req, res) => { } }); +// API für Management-Server Integration +app.get('/api/status', (req, res) => { + const uptime = process.uptime(); + res.json({ + success: true, + status: 'running', + uptime: Math.floor(uptime), + uptimeString: `${Math.floor(uptime / 3600)}h ${Math.floor((uptime % 3600) / 60)}m ${Math.floor(uptime % 60)}s`, + templateCount: fs.existsSync(templateDir) ? fs.readdirSync(templateDir).length : 0, + documentCount: fs.existsSync(outputDir) ? fs.readdirSync(outputDir).length : 0, + customTagsEnabled: managementConfig && managementConfig.customTags ? + managementConfig.customTags.filter(tag => tag.enabled).length : 0, + ssl: fs.existsSync(path.join(__dirname, '203_cert.pem')) && fs.existsSync(path.join(__dirname, '203_key.pem')), + version: '1.0.0' + }); +}); + +app.get('/api/config', (req, res) => { + res.json({ + success: true, + config: { + templateDir: templateDir, + outputDir: outputDir, + ssl: fs.existsSync(path.join(__dirname, '203_cert.pem')) && fs.existsSync(path.join(__dirname, '203_key.pem')), + managementIntegration: !!managementConfig, + customTags: managementConfig ? managementConfig.customTags || [] : [], + dataSources: managementConfig ? managementConfig.dataSources || [] : [] + } + }); +}); + +app.delete('/api/templates/:filename', (req, res) => { + try { + const filename = req.params.filename; + const filePath = path.join(templateDir, filename); + + if (!fs.existsSync(filePath)) { + return res.status(404).json({ success: false, message: 'Template nicht gefunden' }); + } + + fs.unlinkSync(filePath); + res.json({ success: true, message: 'Template gelöscht' }); + } catch (error) { + res.status(500).json({ success: false, message: 'Fehler beim Löschen: ' + error.message }); + } +}); + +app.get('/api/templates/:filename/download', (req, res) => { + try { + const filename = req.params.filename; + const filePath = path.join(templateDir, filename); + + if (!fs.existsSync(filePath)) { + return res.status(404).json({ success: false, message: 'Template nicht gefunden' }); + } + + res.download(filePath); + } catch (error) { + res.status(500).json({ success: false, message: 'Download-Fehler: ' + error.message }); + } +}); + // SSL-Unterstützung if (fs.existsSync(path.join(__dirname, '203_cert.pem')) && fs.existsSync(path.join(__dirname, '203_key.pem'))) { try {