import json from pathlib import Path from flask import Flask, render_template, send_from_directory ROOT = Path(__file__).resolve().parent.parent # Конфигурация демо содержит только разрешённые расширения для browser picker. DEFAULT_CONFIG = {"allowedExt": [".pdf", ".doc", ".docx", ".txt", ".md"]} try: with (ROOT / "config.json").open(encoding="utf-8") as config_file: CONFIG = json.load(config_file) except (OSError, json.JSONDecodeError): CONFIG = DEFAULT_CONFIG VERSION = "0.1.13" # Flask нужен здесь только как статический сервер HTML, CSS и ES-модулей. app = Flask(__name__, template_folder="templates", static_folder="static") @app.route("/") def index(): """Возвращает demo-страницу и передаёт в неё версию и JSON-конфигурацию.""" return render_template("index.html", version=VERSION, config=CONFIG) @app.route("/health") def health(): """Возвращает 200 для liveness-проверки платформы.""" return "ok", 200 @app.get("/upload-frontend/") def upload_frontend(filename): """Отдаёт один frontend-файл из изолированного каталога upload/frontend.""" return send_from_directory(ROOT / "upload" / "frontend", filename) @app.get("/file-picker/") def file_picker_dist(filename): """Отдаёт собранный универсальный picker-бандл из каталога dist.""" return send_from_directory(ROOT / "dist", filename) if __name__ == "__main__": app.run(debug=False, host="0.0.0.0", port=5000)