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

Function to_proto

crates/openshell-policy/src/lib.rs:674–780  ·  view source on GitHub ↗
(raw: PolicyFile)

Source from the content-addressed store, hash-verified

672}
673
674fn to_proto(raw: PolicyFile) -> SandboxPolicy {
675 let network_policies = raw
676 .network_policies
677 .into_iter()
678 .map(|(key, rule)| {
679 let proto_rule = NetworkPolicyRule {
680 name: if rule.name.is_empty() {
681 key.clone()
682 } else {
683 rule.name
684 },
685 endpoints: rule
686 .endpoints
687 .into_iter()
688 .map(|e| {
689 let protocol = e.protocol;
690 let allow_rules = e.rules;
691 let deny_rules = e.deny_rules;
692 // Normalize port/ports: ports takes precedence, else
693 // single port is promoted to ports array.
694 let normalized_ports: Vec<u32> = if !e.ports.is_empty() {
695 e.ports.into_iter().map(u32::from).collect()
696 } else if e.port > 0 {
697 vec![u32::from(e.port)]
698 } else {
699 vec![]
700 };
701 NetworkEndpoint {
702 host: e.host,
703 path: e.path,
704 port: normalized_ports.first().copied().unwrap_or(0),
705 ports: normalized_ports,
706 protocol: protocol.clone(),
707 tls: e.tls,
708 enforcement: e.enforcement,
709 access: e.access,
710 rules: allow_rules
711 .into_iter()
712 .map(|r| L7Rule {
713 allow: Some(allow_def_to_proto(&protocol, r.allow)),
714 })
715 .collect(),
716 allowed_ips: e.allowed_ips,
717 deny_rules: deny_rules
718 .into_iter()
719 .map(|deny| deny_def_to_proto(&protocol, deny))
720 .collect(),
721 allow_encoded_slash: e.allow_encoded_slash,
722 websocket_credential_rewrite: e.websocket_credential_rewrite,
723 request_body_credential_rewrite: e.request_body_credential_rewrite,
724 // Advisor provenance is internal runtime state, not
725 // a user-authored policy schema field.
726 advisor_proposed: false,
727 persisted_queries: e.persisted_queries,
728 graphql_persisted_queries: e
729 .graphql_persisted_queries
730 .into_iter()
731 .map(|(key, op)| {

Callers 1

parse_sandbox_policyFunction · 0.85

Calls 5

allow_def_to_protoFunction · 0.85
deny_def_to_protoFunction · 0.85
json_rpc_max_body_bytesFunction · 0.85
mcp_optionsFunction · 0.85
is_emptyMethod · 0.45

Tested by

no test coverage detected