- init_data.py: batch import with dedup, aggregate all historical dates - wwwroot/cron/init_data.dspy: trigger endpoint - init.py: register init_datamart function with IP whitelist - load_path.py: add RBAC permission for init_data.dspy
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
"""sage_datamart load_path — register RBAC permissions"""
|
|
import os, subprocess
|
|
|
|
MOD = "sage_datamart"
|
|
SAGE_ROOT = os.path.expanduser("~/repos/sage")
|
|
PYTHON = os.path.join(SAGE_ROOT, "py3", "bin", "python")
|
|
SET_PERM = os.path.join(SAGE_ROOT, "set_role_perm.py")
|
|
|
|
# cron endpoints — called via curl from localhost crontab, IP-checked in dspy
|
|
PATHS_ANY = [
|
|
f"/{MOD}/cron/etl_sync.dspy",
|
|
f"/{MOD}/cron/etl_aggregate.dspy",
|
|
f"/{MOD}/cron/etl_provider_cost.dspy",
|
|
f"/{MOD}/cron/init_data.dspy",
|
|
]
|
|
|
|
PATHS_LOGINED = [
|
|
f"/{MOD}",
|
|
f"/{MOD}/index.ui",
|
|
f"/{MOD}/menu.ui",
|
|
f"/{MOD}/provider_roi.ui",
|
|
f"/{MOD}/api/%",
|
|
f"/{MOD}/stat_avg_ttft.ui",
|
|
f"/{MOD}/stat_success_rate.ui",
|
|
f"/{MOD}/stat_total_calls.ui",
|
|
f"/{MOD}/stat_total_users.ui",
|
|
f"/{MOD}/stat_fail_calls.ui",
|
|
f"/{MOD}/stat_today_usage.ui",
|
|
f"/{MOD}/stat_today_amount.ui",
|
|
]
|
|
|
|
def run(role, path):
|
|
subprocess.run([PYTHON, SET_PERM, role, path], capture_output=True)
|
|
|
|
for p in PATHS_ANY:
|
|
run("any", p)
|
|
for p in PATHS_LOGINED:
|
|
run("logined", p)
|
|
|
|
print(f"[{MOD}] {len(PATHS_ANY)} any + {len(PATHS_LOGINED)} logined paths registered")
|