rag/scripts/load_path.py
ymq 25c7ad357c feat(host): 支持接入任意宿主应用 — 补 RBAC load_path.py + uapi 外部服务配置种子
- scripts/load_path.py: 33 个端点 RBAC 注册(any/logined),宿主 load_path.sh 自动扫描调用
- init/uapi_seed.sql: upapp(rag-*)+uapi(rag-*)+uapiio 幂等种子(INSERT IGNORE)
  供任何宿主(ragserver/pipeline-app)导入 vdb/reranker/ner/graph/embedding 服务配置
2026-08-25 15:23:46 +08:00

74 lines
2.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""RBAC path registration for rag module.
在宿主应用根目录执行py3/bin/python pkgs/rag/scripts/load_path.py
pipeline-app 的 load_path.sh 会自动扫描 pkgs/*/scripts/load_path.py 调用本脚本。
"""
import subprocess
MOD = "rag"
# 静态资源 + 免登录可访问
PATHS_ANY = [
f"/{MOD}/knowledge_bases_list/upload.js",
]
# 登录用户可访问(知识库管理全部端点)
PATHS_LOGINED = [
f"/{MOD}",
# 知识库列表与详情
f"/{MOD}/knowledge_bases_list/index.ui",
f"/{MOD}/knowledge_bases_list/detail.ui",
f"/{MOD}/knowledge_bases_list/search.ui",
f"/{MOD}/knowledge_bases_list/new_kb_form.ui",
f"/{MOD}/knowledge_bases_list/kb_list.dspy",
f"/{MOD}/knowledge_bases_list/kb_options.dspy",
f"/{MOD}/knowledge_bases_list/create_kb.dspy",
f"/{MOD}/knowledge_bases_list/rename_kb.dspy",
f"/{MOD}/knowledge_bases_list/rename_kb_form.dspy",
f"/{MOD}/knowledge_bases_list/delete_kb.dspy",
f"/{MOD}/knowledge_bases_list/confirm_delete_form.dspy",
f"/{MOD}/knowledge_bases_list/embedding_options.dspy",
# 文件与目录树
f"/{MOD}/knowledge_bases_list/file_list.dspy",
f"/{MOD}/knowledge_bases_list/upload.dspy",
f"/{MOD}/knowledge_bases_list/upload_file.dspy",
f"/{MOD}/knowledge_bases_list/delete_file.dspy",
f"/{MOD}/knowledge_bases_list/batch_ingest.dspy",
f"/{MOD}/knowledge_bases_list/get_tree_data.dspy",
f"/{MOD}/knowledge_bases_list/new_tree_item.dspy",
f"/{MOD}/knowledge_bases_list/update_tree_item.dspy",
f"/{MOD}/knowledge_bases_list/delete_tree_item.dspy",
# 检索与分析
f"/{MOD}/knowledge_bases_list/search_result.dspy",
f"/{MOD}/knowledge_bases_list/analysis.dspy",
f"/{MOD}/knowledge_bases_list/media_cards.dspy",
# 标签
f"/{MOD}/knowledge_bases_list/tag_form.dspy",
f"/{MOD}/knowledge_bases_list/tag_options.dspy",
f"/{MOD}/knowledge_bases_list/add_tag.dspy",
f"/{MOD}/knowledge_bases_list/save_tags.dspy",
# 存储用量
f"/{MOD}/knowledge_bases_list/storage_card.dspy",
f"/{MOD}/knowledge_bases_list/storage_stats.dspy",
# CRUD 管理页
f"/{MOD}/documents_list/index.ui",
f"/{MOD}/engine_configs_list/index.ui",
f"/{MOD}/subscriptions_list/index.ui",
]
def register_paths():
for path in PATHS_ANY:
subprocess.run(["py3/bin/python", "set_role_perm.py", "any", path])
print(f" any: {path}")
for path in PATHS_LOGINED:
subprocess.run(["py3/bin/python", "set_role_perm.py", "logined", path])
print(f" logined: {path}")
if __name__ == "__main__":
print(f"=== {MOD} RBAC registration ===")
register_paths()
print(f"Done. any={len(PATHS_ANY)} logined={len(PATHS_LOGINED)}")