llmage/scripts/setup_llmage_perms.sh
yumoqing 07b4893252 feat(llmage): 添加llmusage历史记录备份和记账失败检索功能
- 新增 llmusage_history 表:定时备份已记账(use_date<today)的历史记录
- 新增 llmusage_accounting_failed 表:记录记账失败详情,支持检索
- 新增 backup_accounted_llmusage() 函数:备份+清理历史数据
- 新增 get_failed_accounting_records() 函数:按条件检索失败记录
- 更新 llm_accoung_failed():同时写入失败表记录
- 新增 failed_accounting.ui 页面和 failed_accounting_list.dspy API
- 新增 llmusage CRUD API (create/update/delete)
- 新增表索引优化查询性能
- 更新 setup_llmage_perms.sh 添加新端点权限
- 生成生产迁移SQL: scripts/migrate_llmusage_history.sql
2026-05-24 13:55:48 +08:00

103 lines
2.8 KiB
Bash
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.

#!/bin/bash
# setup_llmage_perms.sh
# 为 llmage 模块的 llm_api_map 管理功能配置 RBAC 角色权限
#
# 授权角色:
# owner.superuser — 系统超管:全局所有模型配置
# *.admin — 机构管理员管理本机构模型通过ownerid隔离数据
# reseller.operator — 运营:产品管理、模型配置
#
# 运行位置: sage 项目根目录 (包含 set_role_perm.py 的目录)
# 用法: bash setup_llmage_perms.sh
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
SAGE_DIR="$(cd "$SCRIPT_DIR/../.." && pwd 2>/dev/null || echo "")"
if [ ! -f "$SAGE_DIR/set_role_perm.py" ]; then
SAGE_DIR="$(cd "$SCRIPT_DIR/.." && pwd 2>/dev/null || echo "")"
fi
if [ ! -f "$SAGE_DIR/set_role_perm.py" ]; then
echo "Error: Cannot find set_role_perm.py"
exit 1
fi
cd "$SAGE_DIR"
COUNT=0
set_perm() {
local role="$1"
local path="$2"
python set_role_perm.py "${role}" "${path}"
COUNT=$((COUNT + 1))
}
# 授权角色(超管 + 各机构管理员 + 运营)
PERM_ROLES=(
"owner.superuser"
"owner.admin"
"reseller.admin"
"provider.admin"
"customer.admin"
"reseller.operator"
)
echo "============================================"
echo " llmage: llm_api_map 权限初始化"
echo "============================================"
LLM_API_MAP_PATHS=(
"/llmage/llm_api_map_manage.ui"
"/llmage/api/llm_api_map_list.dspy"
"/llmage/api/llm_api_map_create.dspy"
"/llmage/api/llm_api_map_delete.dspy"
"/llmage/api/llm_api_map_options.dspy"
"/llmage/api/uapi_options.dspy"
)
for p in "${LLM_API_MAP_PATHS[@]}"; do
for role in "${PERM_ROLES[@]}"; do
set_perm "${role}" "${p}"
done
done
echo ""
echo "============================================"
echo " llmage: 记账失败记录权限初始化"
echo "============================================"
FAILED_ACCOUNTING_PATHS=(
"/llmage/failed_accounting.ui"
"/llmage/api/failed_accounting_list.dspy"
"/llmage/api/llmusage_accounting_failed_create.dspy"
"/llmage/api/llmusage_accounting_failed_update.dspy"
"/llmage/api/llmusage_accounting_failed_delete.dspy"
)
for p in "${FAILED_ACCOUNTING_PATHS[@]}"; do
for role in "${PERM_ROLES[@]}"; do
set_perm "${role}" "${p}"
done
done
echo ""
echo "============================================"
echo " llmage: llmusage CRUD权限初始化"
echo "============================================"
LLMUSAGE_PATHS=(
"/llmage/api/llmusage_create.dspy"
"/llmage/api/llmusage_update.dspy"
"/llmage/api/llmusage_delete.dspy"
)
for p in "${LLMUSAGE_PATHS[@]}"; do
for role in "${PERM_ROLES[@]}"; do
set_perm "${role}" "${p}"
done
done
echo ""
echo "============================================"
echo " 权限配置完成,共设置 ${COUNT} 条权限"
echo "============================================"