pub struct NoopPolicyEvaluator;Expand description
Always-allow policy evaluator for testing and local development ONLY.
§WARNING: Not for Production Use
Returns allowed: true for all policy evaluations, completely bypassing
access control. Using this in production disables the entire policy layer.
For production, implement PolicyEvaluator with your authorization backend
(e.g., CedarPolicyEvaluator behind the cedar feature, or a custom
implementation calling AWS Verified Permissions).
§Example
use pmcp_code_mode::{NoopPolicyEvaluator, PolicyEvaluator};
// Test-only usage
let evaluator = NoopPolicyEvaluator::new();
assert_eq!(evaluator.name(), "noop");Implementations§
Trait Implementations§
Source§impl Default for NoopPolicyEvaluator
impl Default for NoopPolicyEvaluator
Source§impl PolicyEvaluator for NoopPolicyEvaluator
impl PolicyEvaluator for NoopPolicyEvaluator
Source§fn evaluate_operation<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_operation: &'life1 OperationEntity,
_server_config: &'life2 ServerConfigEntity,
) -> Pin<Box<dyn Future<Output = Result<AuthorizationDecision, PolicyEvaluationError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn evaluate_operation<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_operation: &'life1 OperationEntity,
_server_config: &'life2 ServerConfigEntity,
) -> Pin<Box<dyn Future<Output = Result<AuthorizationDecision, PolicyEvaluationError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Evaluate a GraphQL operation against policies.
Source§fn evaluate_script<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_script: &'life1 ScriptEntity,
_server: &'life2 OpenAPIServerEntity,
) -> Pin<Box<dyn Future<Output = Result<AuthorizationDecision, PolicyEvaluationError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn evaluate_script<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_script: &'life1 ScriptEntity,
_server: &'life2 OpenAPIServerEntity,
) -> Pin<Box<dyn Future<Output = Result<AuthorizationDecision, PolicyEvaluationError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Evaluate a JavaScript script against policies (OpenAPI Code Mode).
Default: denies all scripts (override for OpenAPI support).
Source§fn batch_evaluate<'life0, 'async_trait>(
&'life0 self,
requests: Vec<(OperationEntity, ServerConfigEntity)>,
) -> Pin<Box<dyn Future<Output = Result<Vec<AuthorizationDecision>, PolicyEvaluationError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn batch_evaluate<'life0, 'async_trait>(
&'life0 self,
requests: Vec<(OperationEntity, ServerConfigEntity)>,
) -> Pin<Box<dyn Future<Output = Result<Vec<AuthorizationDecision>, PolicyEvaluationError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Batch evaluation (default: sequential).
Source§fn is_configured(&self) -> bool
fn is_configured(&self) -> bool
Whether this evaluator is configured and ready.
Auto Trait Implementations§
impl Freeze for NoopPolicyEvaluator
impl RefUnwindSafe for NoopPolicyEvaluator
impl Send for NoopPolicyEvaluator
impl Sync for NoopPolicyEvaluator
impl Unpin for NoopPolicyEvaluator
impl UnsafeUnpin for NoopPolicyEvaluator
impl UnwindSafe for NoopPolicyEvaluator
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> 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 moreCreates a shared type from an unshared type.