Coverage for src / local_deep_research / security / __init__.py: 100%
26 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-14 23:55 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-14 23:55 +0000
1"""Security utilities for Local Deep Research."""
3from .data_sanitizer import (
4 DataSanitizer,
5 filter_research_metadata,
6 redact_data,
7 sanitize_data,
8 strip_settings_snapshot,
9)
10from .security_settings import get_security_default
11from .file_integrity import FileIntegrityManager, FAISSIndexVerifier
12from .notification_validator import (
13 NotificationURLValidator,
14 NotificationURLValidationError,
15)
16from .safe_requests import safe_get, safe_post, SafeSession
17from .security_headers import SecurityHeaders
18from .ssrf_validator import validate_url, get_safe_url, is_ip_blocked
19from .url_validator import URLValidator
20from .account_lockout import AccountLockoutManager, get_account_lockout_manager
21from .password_validator import PasswordValidator
22from .log_sanitizer import sanitize_for_log, strip_control_chars
23from .filename_sanitizer import sanitize_filename, UnsafeFilenameError
24from .module_whitelist import (
25 get_safe_module_class,
26 ModuleNotAllowedError,
27 ALLOWED_MODULES,
28)
30# PathValidator requires werkzeug (Flask dependency), import conditionally
31try:
32 from .path_validator import PathValidator
34 _has_path_validator = True
35except ImportError:
36 PathValidator = None # type: ignore
37 _has_path_validator = False
39# FileUploadValidator requires pdfplumber, import conditionally
40try:
41 from .file_upload_validator import FileUploadValidator
43 _has_file_upload_validator = True
44except ImportError:
45 FileUploadValidator = None # type: ignore
46 _has_file_upload_validator = False
48__all__ = [
49 "PathValidator",
50 "DataSanitizer",
51 "sanitize_data",
52 "redact_data",
53 "filter_research_metadata",
54 "strip_settings_snapshot",
55 "get_security_default",
56 "FileIntegrityManager",
57 "FAISSIndexVerifier",
58 "FileUploadValidator",
59 "NotificationURLValidator",
60 "NotificationURLValidationError",
61 "SecurityHeaders",
62 "URLValidator",
63 "safe_get",
64 "safe_post",
65 "SafeSession",
66 "validate_url",
67 "get_safe_url",
68 "is_ip_blocked",
69 "get_safe_module_class",
70 "ModuleNotAllowedError",
71 "ALLOWED_MODULES",
72 "AccountLockoutManager",
73 "get_account_lockout_manager",
74 "PasswordValidator",
75 "sanitize_for_log",
76 "strip_control_chars",
77 "sanitize_filename",
78 "UnsafeFilenameError",
79]