""" Portal Web应用主入口 — CMS业务壳 启动: py3/bin/python app/portal.py -p 9090 -w $(pwd) Portal是一个轻量级Web应用壳,通过pip install加载cms业务模块。 类似pipeline-app模式:app壳负责基础设施初始化,业务逻辑在模块中。 """ import os, sys # 添加应用根目录到Python路径 app_dir = os.path.dirname(os.path.abspath(__file__)) root_dir = os.path.dirname(app_dir) sys.path.insert(0, root_dir) # Ensure app/ is in path for local imports sys.path.insert(0, app_dir) from appPublic.log import MyLogger, info from appPublic.folderUtils import ProgramPath from appPublic.jsonConfig import getConfig from appPublic.registerfunction import RegisterFunction from bricks_for_python.init import load_pybricks from ahserver.webapp import webapp from ahserver.serverenv import ServerEnv from sqlor.dbpools import DBPools # CMS业务模块 (通过pip install -e ~/repos/cms安装) from cms.init import load_cms # RBAC认证(复用sage的rbac模块) from rbac.init import load_rbac from appbase.init import load_appbase # 全局函数 from global_func import set_globalvariable __version__ = '1.0.0' def get_module_dbname(m): return 'ocai_cms' def init(): rf = RegisterFunction() set_globalvariable() env = ServerEnv() env.get_module_dbname = get_module_dbname # Initialize DBPools and register db on ServerEnv for dspy use config = getConfig('.') env.db = DBPools(config.databases) load_pybricks() load_appbase() load_rbac() load_cms() if __name__ == '__main__': webapp(init)