Stream a security report for the specified server via SSE.
(sid)
| 1115 | @pgCSRFProtect.exempt |
| 1116 | @pga_login_required |
| 1117 | def generate_security_report_stream(sid): |
| 1118 | """ |
| 1119 | Stream a security report for the specified server via SSE. |
| 1120 | """ |
| 1121 | from pgadmin.llm.utils import is_llm_enabled |
| 1122 | from pgadmin.llm.reports.generator import ( |
| 1123 | generate_report_streaming, create_sse_response |
| 1124 | ) |
| 1125 | from pgadmin.utils.driver import get_driver |
| 1126 | |
| 1127 | if not is_llm_enabled(): |
| 1128 | return make_json_response( |
| 1129 | success=0, |
| 1130 | errormsg=gettext( |
| 1131 | 'LLM is not configured. Please configure an LLM provider ' |
| 1132 | 'in Preferences > AI.' |
| 1133 | ) |
| 1134 | ) |
| 1135 | |
| 1136 | try: |
| 1137 | driver = get_driver(config.PG_DEFAULT_DRIVER) |
| 1138 | manager = driver.connection_manager(sid) |
| 1139 | conn = manager.connection() |
| 1140 | |
| 1141 | if not conn.connected(): |
| 1142 | return make_json_response( |
| 1143 | success=0, |
| 1144 | errormsg=gettext('Server is not connected.') |
| 1145 | ) |
| 1146 | |
| 1147 | context = {} |
| 1148 | generator = generate_report_streaming( |
| 1149 | report_type='security', |
| 1150 | scope='server', |
| 1151 | conn=conn, |
| 1152 | manager=manager, |
| 1153 | context=context |
| 1154 | ) |
| 1155 | |
| 1156 | return create_sse_response(generator) |
| 1157 | |
| 1158 | except Exception as e: |
| 1159 | return make_json_response( |
| 1160 | success=0, |
| 1161 | errormsg=str(e) |
| 1162 | ) |
| 1163 | |
| 1164 | |
| 1165 | def _gather_security_config(conn, manager): |
nothing calls this directly
no test coverage detected