This is an automated email from the ASF dual-hosted git repository. Aman-Mittal pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/fineract-business-intelligence.git
commit 2a609fe8f7934cdd403b07cde0815f988b36af3a Merge: 0b989e7 fb29727 Author: Aman-Mittal <[email protected]> AuthorDate: Wed Aug 12 11:10:30 2026 +0530 Merge pull request #63 from airajena/fix/security-concerns fix: RLS fail-open/injection, historical balance replication, PAR/DPD misclassification, and extractor atomicity gaps .env.example | 4 + .github/workflows/ci.yml | 16 +- .../intermediate/int_loan_delinquency_status.sql | 241 +++++++++++++++--- .../presentations/mart_repayment_behavior.sql | 2 +- dbt/models/staging/_staging.yml | 23 ++ .../staging/stg_m_loan_repayment_schedule.sql | 48 ++++ ...shot_principal_matches_current_loan_balance.sql | 45 ++++ ...ication_matches_actual_overdue_installments.sql | 52 ++++ extractor/cli.py | 5 + extractor/config.py | 11 +- extractor/extractor.py | 160 +++++++++--- extractor/watermark_manager.py | 1 - requirements-dev.txt | 1 + scripts/bootstrap_fineract_source.sh | 5 +- scripts/bootstrap_source.sh | 24 +- .../datasets/delinquency_par_secure_all_dates.sql | 27 +- .../datasets/delinquency_par_secure_latest.sql | 27 +- .../datasets/portfolio_health_secure_all_dates.sql | 27 +- .../datasets/portfolio_health_secure_latest.sql | 27 +- .../repayment_behavior_secure_all_dates.sql | 3 +- .../datasets/repayment_behavior_secure_latest.sql | 27 +- tests/conftest.py | 1 + tests/integration/test_rls_isolation.py | 36 ++- tests/unit/extractor/test_cob_gate.py | 24 +- tests/unit/extractor/test_config.py | 40 +++ tests/unit/extractor/test_helpers.py | 6 + tests/unit/extractor/test_reconcile.py | 106 ++++++++ tests/unit/extractor/test_source_query.py | 18 ++ tests/unit/extractor/test_upsert_rows.py | 43 ++++ tests/unit/extractor/test_watermark.py | 13 +- tests/unit/superset/test_rls_templates.py | 70 ++++++ warehouse/schema/raw_tables.sql | 7 + warehouse/seed/seed_fineract_source.sql | 279 +++++++++++---------- 33 files changed, 1123 insertions(+), 296 deletions(-)
