Coverage for src/local_deep_research/security/__init__.py: 100%
26 statements
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-03 23:15 +0000
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-03 23:15 +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 (
23 redact_secrets,
24 sanitize_for_log,
25 strip_control_chars,
26)
27from .filename_sanitizer import sanitize_filename, UnsafeFilenameError
28from .module_whitelist import (
29 get_safe_module_class,
30 ModuleNotAllowedError,
31 ALLOWED_MODULES,
32)
34# PathValidator requires werkzeug (Flask dependency), import conditionally
35try:
36 from .path_validator import PathValidator
38 _has_path_validator = True
39except ImportError:
40 PathValidator = None # type: ignore
41 _has_path_validator = False
43# FileUploadValidator requires pdfplumber, import conditionally
44try:
45 from .file_upload_validator import FileUploadValidator
47 _has_file_upload_validator = True
48except ImportError:
49 FileUploadValidator = None # type: ignore
50 _has_file_upload_validator = False
52__all__ = [
53 "PathValidator",
54 "DataSanitizer",
55 "sanitize_data",
56 "redact_data",
57 "filter_research_metadata",
58 "strip_settings_snapshot",
59 "get_security_default",
60 "FileIntegrityManager",
61 "FAISSIndexVerifier",
62 "FileUploadValidator",
63 "NotificationURLValidator",
64 "NotificationURLValidationError",
65 "SecurityHeaders",
66 "URLValidator",
67 "safe_get",
68 "safe_post",
69 "SafeSession",
70 "validate_url",
71 "get_safe_url",
72 "is_ip_blocked",
73 "get_safe_module_class",
74 "ModuleNotAllowedError",
75 "ALLOWED_MODULES",
76 "AccountLockoutManager",
77 "get_account_lockout_manager",
78 "PasswordValidator",
79 "redact_secrets",
80 "sanitize_for_log",
81 "strip_control_chars",
82 "sanitize_filename",
83 "UnsafeFilenameError",
84]