{"nodes": [{"id": "$graphify-root$_backend_app_services_jwt_py", "label": "jwt.py", "file_type": "code", "source_file": "backend/app/services/jwt.py", "source_location": "L1"}, {"id": "$graphify-root$_backend_app_services_jwt_create_access_token", "label": "create_access_token()", "file_type": "code", "source_file": "backend/app/services/jwt.py", "source_location": "L7", "_callable": true}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/backend/app/services/jwt.py"}, {"id": "$graphify-root$_backend_app_services_jwt_create_refresh_token", "label": "create_refresh_token()", "file_type": "code", "source_file": "backend/app/services/jwt.py", "source_location": "L25", "_callable": true}, {"id": "$graphify-root$_backend_app_services_jwt_create_session_jwt", "label": "create_session_jwt()", "file_type": "code", "source_file": "backend/app/services/jwt.py", "source_location": "L45", "_callable": true}, {"id": "$graphify-root$_backend_app_services_jwt_verify_token", "label": "verify_token()", "file_type": "code", "source_file": "backend/app/services/jwt.py", "source_location": "L68", "_callable": true}, {"id": "$graphify-root$_backend_app_services_jwt_verify_session_jwt", "label": "verify_session_jwt()", "file_type": "code", "source_file": "backend/app/services/jwt.py", "source_location": "L89", "_callable": true}, {"id": "$graphify-root$_backend_app_services_jwt_rationale_8", "label": "Create short-lived access token (15 minutes). Returns (token, expires_at).", "file_type": "rationale", "source_file": "backend/app/services/jwt.py", "source_location": "L8"}, {"id": "$graphify-root$_backend_app_services_jwt_rationale_26", "label": "Create long-lived refresh token (7 days). Returns (token, jti, expires_at).", "file_type": "rationale", "source_file": "backend/app/services/jwt.py", "source_location": "L26"}, {"id": "$graphify-root$_backend_app_services_jwt_rationale_46", "label": "Legacy: Create Atlas session JWT. Returns (token, jti, expires_at). DEPRECATED:\u2026", "file_type": "rationale", "source_file": "backend/app/services/jwt.py", "source_location": "L46"}, {"id": "$graphify-root$_backend_app_services_jwt_rationale_69", "label": "Verify and decode JWT (access or refresh). Returns payload or None if invalid.", "file_type": "rationale", "source_file": "backend/app/services/jwt.py", "source_location": "L69"}, {"id": "$graphify-root$_backend_app_services_jwt_rationale_90", "label": "Legacy: Verify and decode JWT. Returns payload or None if invalid. DEPRECATED:\u2026", "file_type": "rationale", "source_file": "backend/app/services/jwt.py", "source_location": "L90"}], "edges": [{"source": "$graphify-root$_backend_app_services_jwt_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L1", "weight": 1.0, "_python_import_module": "datetime", "_python_import_bindings": [["datetime", "datetime"], ["timedelta", "timedelta"]]}, {"source": "$graphify-root$_backend_app_services_jwt_py", "target": "jose", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L2", "weight": 1.0, "_python_import_module": "jose", "_python_import_bindings": [["JWTError", "JWTError"], ["jwt", "jwt"]]}, {"source": "$graphify-root$_backend_app_services_jwt_py", "target": "$graphify-root$_backend_app_core_config_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L3", "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_services_jwt_py", "target": "secrets", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L4", "weight": 1.0, "_python_import_module": "secrets", "_python_import_bindings": [["secrets", "secrets"]], "_python_import_module_binding": true}, {"source": "$graphify-root$_backend_app_services_jwt_py", "target": "$graphify-root$_backend_app_services_jwt_create_access_token", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_create_access_token", "target": "datetime", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_py", "target": "$graphify-root$_backend_app_services_jwt_create_refresh_token", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_create_refresh_token", "target": "datetime", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_py", "target": "$graphify-root$_backend_app_services_jwt_create_session_jwt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L45", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_create_session_jwt", "target": "datetime", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L45", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_py", "target": "$graphify-root$_backend_app_services_jwt_verify_token", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L68", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_py", "target": "$graphify-root$_backend_app_services_jwt_verify_session_jwt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L89", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_verify_session_jwt", "target": "$graphify-root$_backend_app_services_jwt_verify_token", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L95", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_rationale_8", "target": "$graphify-root$_backend_app_services_jwt_create_access_token", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_rationale_26", "target": "$graphify-root$_backend_app_services_jwt_create_refresh_token", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_rationale_46", "target": "$graphify-root$_backend_app_services_jwt_create_session_jwt", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L46", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_rationale_69", "target": "$graphify-root$_backend_app_services_jwt_verify_token", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L69", "weight": 1.0}, {"source": "$graphify-root$_backend_app_services_jwt_rationale_90", "target": "$graphify-root$_backend_app_services_jwt_verify_session_jwt", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/jwt.py", "source_location": "L90", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_backend_app_services_jwt_create_access_token", "callee": "utcnow", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L9", "receiver": "datetime", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_access_token", "callee": "timedelta", "is_member_call": false, "source_file": "backend/app/services/jwt.py", "source_location": "L9", "receiver": null}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_access_token", "callee": "utcnow", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L16", "receiver": "datetime", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_access_token", "callee": "encode", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L21", "receiver": "jwt", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_refresh_token", "callee": "token_urlsafe", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L27", "receiver": "secrets", "_python_receiver_shadowed": false}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_refresh_token", "callee": "utcnow", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L28", "receiver": "datetime", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_refresh_token", "callee": "timedelta", "is_member_call": false, "source_file": "backend/app/services/jwt.py", "source_location": "L28", "receiver": null}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_refresh_token", "callee": "utcnow", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L36", "receiver": "datetime", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_refresh_token", "callee": "encode", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L41", "receiver": "jwt", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_session_jwt", "callee": "token_urlsafe", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L51", "receiver": "secrets", "_python_receiver_shadowed": false}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_session_jwt", "callee": "utcnow", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L52", "receiver": "datetime", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_session_jwt", "callee": "timedelta", "is_member_call": false, "source_file": "backend/app/services/jwt.py", "source_location": "L52", "receiver": null}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_session_jwt", "callee": "utcnow", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L59", "receiver": "datetime", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_create_session_jwt", "callee": "encode", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L64", "receiver": "jwt", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_verify_token", "callee": "decode", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L71", "receiver": "jwt", "_python_receiver_shadowed": true}, {"caller_nid": "$graphify-root$_backend_app_services_jwt_verify_token", "callee": "get", "is_member_call": true, "source_file": "backend/app/services/jwt.py", "source_location": "L81", "receiver": "payload", "_python_receiver_shadowed": true}], "_cached_target_files": ["$graphify-root$/backend/app/core/config.py"]}