pub struct SecurityConfig {
pub allowed_script_dirs: Vec<PathBuf>,
pub max_timeout_secs: u64,
pub max_code_length: usize,
pub allow_direct_code: bool,
pub blocked_modules: HashSet<String>,
pub blocked_operations: HashSet<String>,
}Expand description
Security configuration for Python execution
Fields§
§allowed_script_dirs: Vec<PathBuf>Allowed script directories (whitelist)
max_timeout_secs: u64Maximum execution timeout in seconds
max_code_length: usizeMaximum code length (bytes)
allow_direct_code: boolAllow direct code execution (dangerous, should be false in production)
blocked_modules: HashSet<String>Blocked Python modules (blacklist)
blocked_operations: HashSet<String>Blocked Python operations (blacklist)
Implementations§
Source§impl SecurityConfig
impl SecurityConfig
Sourcepub fn permissive() -> Self
pub fn permissive() -> Self
Create a permissive configuration (use with caution)
Sourcepub fn with_allowed_dir(self, dir: PathBuf) -> Self
pub fn with_allowed_dir(self, dir: PathBuf) -> Self
Add an allowed script directory
Sourcepub fn is_path_allowed(&self, path: &Path) -> bool
pub fn is_path_allowed(&self, path: &Path) -> bool
Check if a path is allowed
Sourcepub fn validate_code(&self, code: &str) -> Result<()>
pub fn validate_code(&self, code: &str) -> Result<()>
Validate Python code for dangerous operations
Trait Implementations§
Source§impl Clone for SecurityConfig
impl Clone for SecurityConfig
Source§fn clone(&self) -> SecurityConfig
fn clone(&self) -> SecurityConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SecurityConfig
impl Debug for SecurityConfig
Source§impl Default for SecurityConfig
impl Default for SecurityConfig
Source§impl<'de> Deserialize<'de> for SecurityConfig
impl<'de> Deserialize<'de> for SecurityConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for SecurityConfig
impl RefUnwindSafe for SecurityConfig
impl Send for SecurityConfig
impl Sync for SecurityConfig
impl Unpin for SecurityConfig
impl UnwindSafe for SecurityConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more