bharatgraph / api /routes

Commit History

  1. Wire get_graph_depth() into 5 internal investigator queries (R-5, partial)⁠

    f064888

  1. Extend provenance badges to search results (D8)⁠

    c91bada
  2. Add provenance badges to the entity profile view (D8)⁠

    66bf6f4
  3. Migrate admin-secret generation to try the OS keychain first (D6)⁠

    188acc4

  1. fix: desktop-mode-adapt dossier output; unify 3 hardcoded copies of its path (P-1)⁠

    7650d33

  1. feat(D1): local config-file loading + desktop-mode admin-auth hardening⁠

    e26a730

  1. fix(timeline route): invalid Cypher syntax '{id: }' and bare LIMIT⁠

    4ccfced
  2. fix(forensics route): invalid Cypher syntax '{id:}' in 3 query blocks⁠

    3f1a145
  3. fix(risk route): invalid Cypher syntax + wrong field names in 3 Phase-34 blocks⁠

    146a572

  1. fix(search): remove dead 'pressrelease' LABEL_QUERIES branch⁠

    7fd981e

  1. feat(phase-34): add api/routes/case_memory.py with 3 endpoints⁠

    538036c
  2. feat(phase-34): add api/routes/self_learning.py with 4 endpoints⁠

    5fdaa50
  3. feat(phase-34): add api/routes/forensics.py with 5 endpoints⁠

    48337b7
  4. feat(phase-34): wire BenfordsAnalyzer + GhostCompanyDetector + ShadowDirectorDetector into risk scorer⁠

    4ac80cb

  1. feat(phase-33): add api/routes/timeline.py with 2 endpoints⁠

    4435778
  2. feat(phase-33): add 4 graph analytics endpoints to api/routes/graph.py⁠

    5ac9ba3

  1. feat(phase-32): add api/routes/resolve.py with 4 endpoints⁠

    d5dc03e

  1. fix(LOGIC-1): remove 2 duplicate pressrelease keys in LABEL_QUERIES; fix LIMIT $lim -> $limit to match query runner kwarg

    b348d13
  2. fix(SEC-6): reject empty-string ADMIN_SECRET -- empty string was falsy and bypassed authentication check

    4040e0f
  3. fix(CodeQL#16-17): use validated real_out path for FileResponse and media_type check in export.py

    673a953
  4. fix(CodeQL#23): log exception type only in investigation.py -- full exception message may expose Neo4j URI

    7a6c1ee

  1. fix(M-08): add pressrelease alias in LABEL_QUERIES so frontend filter button works

    9b088fe

  1. fix(M-08): add 'pressrelease' alias key in LABEL_QUERIES -- frontend filter button now correctly filters to PressRelease nodes

    2d87a38
  2. fix(M-03,M-06,M-08): add mobile CSS overrides for inline grid layouts; add NONE risk level for score=0; clamp risk score to 0-100

    b0e0450
  3. fix(CodeQL#23): log exception type only, not full message in investigation.py -- prevents Neo4j URI/credentials leaking into logs

    370bb36
  4. fix(H-08): replace substring audit name match with relationship-based + word-boundary match -- eliminates false positives for common words like 'India', 'National'

    48f3ef2
  5. fix(H-07,CodeQL#12-17): use file-anchored absolute paths for path traversal guards in dossier_generator and export -- relative realpath() was CWD-dependent

    6de77e6
  6. fix(H-04): enforce ADMIN_SECRET even when DEBUG_MODE=true -- prevents production DB wipe via accidental debug flag

    d39cad8

  1. fix(BUG-17): wire blockchain.audit_chain.store_daily_root() to dossier export -- README SHA-256 claim now accurate

    06f5a34
  2. fix(NEW-A3 part1): replace em-dashes/smart-quotes in 56+ Python files -- CI requires pure ASCII source

    8a0fba4
  3. fix(BUG-15): remove duplicate entity_type param from /search; keep only entity_type_param with alias='type'

    e13cf2a
  4. fix(BUG-6,NEW-A6): add X-Admin-Secret auth on /admin/seed and /admin/pipeline; add threading.Lock for pipeline race condition

    e97313c
  5. fix(BUG-1): use str(depth_safe) literal in Cypher path pattern -- Neo4j rejects parameters in *min..max

    391b602

  1. fix(encoding): strip non-ASCII from 4 remaining files⁠

    23cf286
  2. fix(api+graph+pipeline): M-04+M-05+M-08+M-09 -- misc medium fixes⁠

    5d9b8a9
  3. fix(api+ai): M-01+M-02+M-03 -- version consistency and duplicate assignments⁠

    01cf12a
  4. fix(api+pipeline): C-05+C-06 -- unsearchable nodes and hardcoded ICIJ names⁠

    2f11b48
  5. fix(api): C-04 -- /investigate was using DeepInvestigator not MultiInvestigator⁠

    2a82690
  6. fix(api): C-02+H-04 -- risk None crash and missing risk signals⁠

    3c1144f

  1. fix(encoding): strip non-ASCII chars from all modified files⁠

    747e613
  2. fix(api): BUG-17 -- fragile rstrip(s) filter normalisation in search⁠

    77b5a18
  3. fix(api): BUG-10 -- deduplicate graph edges before sending to frontend⁠

    719142b
  4. fix(api): BUG-10 -- deduplicate graph edges before sending to frontend⁠

    7beb5e9

  1. feat(api): add GET /runtime endpoint⁠

    9cf5b3f

  1. fix

    21e8167
  2. fix(admin): BUG-21/22/30 — driver reuse, bond key, 7 missing scrapers⁠

    d8672be
  3. fix(search): BUG-1/4/10/18 — type() crash, missing types, source map⁠

    fabf548

  1. fix(BUG-03/22): removed duplicate fallback block; added sources field to ProfileResponse

    99375ed
  2. fix(BUG-08): DossierGenerator no longer caches stale Neo4j driver

    b7bdaca
  3. fix(BUG-04): all investigation routes wrapped in try/except — no more raw 500s

    6c74dba