MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / evaluate_l7_request

Function evaluate_l7_request

crates/openshell-supervisor-network/src/l7/relay.rs:1492–1518  ·  view source on GitHub ↗

Evaluate an L7 request against the OPA engine. Returns `(allowed, deny_reason)`.

(
    engine: &TunnelPolicyEngine,
    ctx: &L7EvalContext,
    request: &L7RequestInfo,
)

Source from the content-addressed store, hash-verified

1490///
1491/// Returns `(allowed, deny_reason)`.
1492pub fn evaluate_l7_request(
1493 engine: &TunnelPolicyEngine,
1494 ctx: &L7EvalContext,
1495 request: &L7RequestInfo,
1496) -> Result<(bool, String)> {
1497 if let Some(jsonrpc) = &request.jsonrpc
1498 && jsonrpc.is_batch
1499 && !jsonrpc.calls.is_empty()
1500 {
1501 if jsonrpc.has_response {
1502 let (allowed, reason) = evaluate_l7_request_once(engine, ctx, request)?;
1503 if !allowed {
1504 return Ok((false, reason));
1505 }
1506 }
1507 for call in &jsonrpc.calls {
1508 let item_request = jsonrpc_request_for_call(request, call);
1509 let (allowed, reason) = evaluate_l7_request_once(engine, ctx, &item_request)?;
1510 if !allowed {
1511 return Ok((false, reason));
1512 }
1513 }
1514 return Ok((true, String::new()));
1515 }
1516
1517 evaluate_l7_request_once(engine, ctx, request)
1518}
1519
1520fn evaluate_jsonrpc_l7_request_for_log(
1521 engine: &TunnelPolicyEngine,

Calls 3

evaluate_l7_request_onceFunction · 0.85
jsonrpc_request_for_callFunction · 0.85
is_emptyMethod · 0.45