{"nodes": [{"id": "$graphify-root$_backend_app_api_logs_py", "label": "logs.py", "file_type": "code", "source_file": "backend/app/api/logs.py", "source_location": "L1"}, {"id": "$graphify-root$_backend_app_api_logs_require_user", "label": "_require_user()", "file_type": "code", "source_file": "backend/app/api/logs.py", "source_location": "L13", "_callable": true}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/backend/app/api/logs.py"}, {"id": "get", "label": "get", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/backend/app/api/logs.py"}, {"id": "$graphify-root$_backend_app_api_logs_list_logs", "label": "list_logs()", "file_type": "code", "source_file": "backend/app/api/logs.py", "source_location": "L23", "_callable": true}, {"id": "$graphify-root$_backend_app_api_logs_stream_logs", "label": "stream_logs()", "file_type": "code", "source_file": "backend/app/api/logs.py", "source_location": "L59", "_callable": true}, {"id": "request", "label": "Request", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/backend/app/api/logs.py"}, {"id": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "label": "event_generator()", "file_type": "code", "source_file": "backend/app/api/logs.py", "source_location": "L78", "_callable": true}, {"id": "$graphify-root$_backend_app_api_logs_rationale_30", "label": "List log terbaru (untuk live log di frontend). - logger='activity' \u2192 hanya\u2026", "file_type": "rationale", "source_file": "backend/app/api/logs.py", "source_location": "L30"}, {"id": "$graphify-root$_backend_app_api_logs_rationale_63", "label": "Server-Sent Events: live log stream (real-time, <1 detik). Frontend pakai\u2026", "file_type": "rationale", "source_file": "backend/app/api/logs.py", "source_location": "L63"}], "edges": [{"source": "$graphify-root$_backend_app_api_logs_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L1", "weight": 1.0, "_python_import_module": "fastapi", "_python_import_bindings": [["APIRouter", "APIRouter"], ["Depends", "Depends"], ["HTTPException", "HTTPException"], ["Cookie", "Cookie"], ["Request", "Request"]]}, {"source": "$graphify-root$_backend_app_api_logs_py", "target": "fastapi_responses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L2", "weight": 1.0, "_python_import_module": "fastapi.responses", "_python_import_bindings": [["StreamingResponse", "StreamingResponse"]]}, {"source": "$graphify-root$_backend_app_api_logs_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L3", "weight": 1.0, "_python_import_module": "sqlalchemy.orm", "_python_import_bindings": [["Session", "Session"]]}, {"source": "$graphify-root$_backend_app_api_logs_py", "target": "asyncio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L4", "weight": 1.0, "_python_import_module": "asyncio", "_python_import_bindings": [["asyncio", "asyncio"]], "_python_import_module_binding": true}, {"source": "$graphify-root$_backend_app_api_logs_py", "target": "$graphify-root$_backend_app_db_session_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L5", "weight": 1.0, "_python_import_module": "app.db.session", "_python_import_bindings": [["get_db", "get_db"]], "target_file": "$graphify-root$/backend/app/db/session.py"}, {"source": "$graphify-root$_backend_app_api_logs_py", "target": "$graphify-root$_backend_app_db_models_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L6", "weight": 1.0, "_python_import_module": "app.db.models", "_python_import_bindings": [["SystemLog", "SystemLog"]], "target_file": "$graphify-root$/backend/app/db/models.py"}, {"source": "$graphify-root$_backend_app_api_logs_py", "target": "$graphify-root$_backend_app_services_auth_service_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L7", "weight": 1.0, "_python_import_module": "app.services.auth_service", "_python_import_bindings": [["get_current_user", "get_current_user"]], "target_file": "$graphify-root$/backend/app/services/auth_service.py"}, {"source": "$graphify-root$_backend_app_api_logs_py", "target": "$graphify-root$_backend_app_core_config_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L8", "weight": 1.0, "_python_import_module": "app.core.config", "_python_import_bindings": [["settings", "settings"]], "target_file": "$graphify-root$/backend/app/core/config.py"}, {"source": "$graphify-root$_backend_app_api_logs_py", "target": "$graphify-root$_backend_app_api_logs_require_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_backend_app_api_logs_require_user", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_backend_app_api_logs_list_logs", "target": "get", "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L22", "weight": 1.0, "context": "decorator"}, {"source": "$graphify-root$_backend_app_api_logs_py", "target": "$graphify-root$_backend_app_api_logs_list_logs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_backend_app_api_logs_list_logs", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_backend_app_api_logs_stream_logs", "target": "get", "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L58", "weight": 1.0, "context": "decorator"}, {"source": "$graphify-root$_backend_app_api_logs_py", "target": "$graphify-root$_backend_app_api_logs_stream_logs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L59", "weight": 1.0}, {"source": "$graphify-root$_backend_app_api_logs_stream_logs", "target": "request", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L59", "weight": 1.0}, {"source": "$graphify-root$_backend_app_api_logs_stream_logs", "target": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L78", "weight": 1.0}, {"source": "$graphify-root$_backend_app_api_logs_list_logs", "target": "$graphify-root$_backend_app_api_logs_require_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_backend_app_api_logs_stream_logs", "target": "$graphify-root$_backend_app_api_logs_require_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L71", "weight": 1.0}, {"source": "$graphify-root$_backend_app_api_logs_stream_logs", "target": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L106", "weight": 1.0}, {"source": "$graphify-root$_backend_app_api_logs_rationale_30", "target": "$graphify-root$_backend_app_api_logs_list_logs", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_backend_app_api_logs_rationale_63", "target": "$graphify-root$_backend_app_api_logs_stream_logs", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/logs.py", "source_location": "L63", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_backend_app_api_logs_require_user", "callee": "HTTPException", "is_member_call": false, "source_file": "backend/app/api/logs.py", "source_location": "L15", "receiver": null}, {"caller_nid": "$graphify-root$_backend_app_api_logs_require_user", "callee": "get_current_user", "is_member_call": false, "source_file": "backend/app/api/logs.py", "source_location": "L16", "receiver": null}, {"caller_nid": "$graphify-root$_backend_app_api_logs_require_user", "callee": "HTTPException", "is_member_call": false, "source_file": "backend/app/api/logs.py", "source_location": "L18", "receiver": null}, {"caller_nid": "$graphify-root$_backend_app_api_logs_list_logs", "callee": "query", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L37", "receiver": "db", "_python_receiver_shadowed": true, "receiver_type": "Session"}, {"caller_nid": "$graphify-root$_backend_app_api_logs_list_logs", "callee": "SystemLog", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "backend/app/api/logs.py", "source_location": "L37"}, {"caller_nid": "$graphify-root$_backend_app_api_logs_list_logs", "callee": "filter", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L39", "receiver": "query", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_list_logs", "callee": "upper", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L39", "receiver": "level", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_list_logs", "callee": "filter", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L41", "receiver": "query", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_list_logs", "callee": "all", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L43", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_list_logs", "callee": "limit", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L43", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_list_logs", "callee": "order_by", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L43", "receiver": "query", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_list_logs", "callee": "desc", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L43", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_list_logs", "callee": "isoformat", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L47", "receiver": null, "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs", "callee": "get_db", "is_member_call": false, "source_file": "backend/app/api/logs.py", "source_location": "L69", "receiver": null}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs", "callee": "close", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L73", "receiver": "db", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs", "callee": "StreamingResponse", "is_member_call": false, "source_file": "backend/app/api/logs.py", "source_location": "L105", "receiver": null}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "callee": "from_url", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L81", "receiver": "Redis", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "callee": "pubsub", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L82", "receiver": "r", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "callee": "subscribe", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L83", "receiver": "pubsub", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "callee": "monotonic", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L85", "receiver": "_time", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "callee": "is_disconnected", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L87", "receiver": "request", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "callee": "get_message", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L89", "receiver": "pubsub", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "callee": "get", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L91", "receiver": "msg", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "callee": "monotonic", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L94", "receiver": "_time", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "callee": "monotonic", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L97", "receiver": "_time", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_api_logs_stream_logs_event_generator", "callee": "aclose", "is_member_call": true, "source_file": "backend/app/api/logs.py", "source_location": "L103", "receiver": "pubsub", "_python_receiver_shadowed": true}], "_cached_target_files": ["$graphify-root$/backend/app/core/config.py", "$graphify-root$/backend/app/db/models.py", "$graphify-root$/backend/app/db/session.py", "$graphify-root$/backend/app/services/auth_service.py"]}