The 4 period buttons used actiontype:urldata which calls
_buildDataHandler requiring desc.status_of[data.status] mapping.
Neither was provided, causing 'Cannot read properties of
undefined (reading undefined)' crash.
Fix: use actiontype:method with method:render_urldata (ChartBar's
inherited EchartsExt method). ChartBar's data_url now uses
data_params={'period':'all'} for default, buttons pass {period:x}
via render_urldata params.
- scripts/init_data.py: standalone CLI tool, connects directly to sage DB
- Remove HTTP endpoint (cron/init_data.dspy) - init is one-time operation
- Remove init_datamart from init.py - no longer exposed as web service
- Remove RBAC permission for init_data.dspy
Usage: cd /path/to/sage && python /path/to/sage_datamart/scripts/init_data.py
- 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
- Rename package directory and all references from sage_datamark to sage_datamart
- Add 3 ETL cron dspy files (sync/aggregate/provider_cost) for scheduled data pipelines
- Add 5 stat UI files (total_users/fail_calls/success_rate/avg_ttft/total_calls)
- Register j2_ template functions in init.py for UI rendering
- Move j2_avg_ttft SQL to dashboards.py for DRY
- Clean unused imports (getConfig/DBPools/exception)
- Update git remote to sage_datamart.git