Skip to content

Commit 9ebcdd5

Browse files
committed
fix(supervisor-middleware): harden middleware relay handling
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
1 parent 6ca4bfe commit 9ebcdd5

11 files changed

Lines changed: 1059 additions & 172 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/openshell-cli/src/policy_update.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ pub fn build_policy_update_plan(
6565
..Default::default()
6666
})
6767
.collect(),
68+
middleware: Vec::new(),
6869
};
6970
merge_operations.push(PolicyMergeOperation {
7071
operation: Some(policy_merge_operation::Operation::AddRule(AddNetworkRule {

crates/openshell-sandbox/src/mechanistic_mapper.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ pub fn generate_proposals(summaries: &[DenialSummary]) -> Vec<PolicyChunk> {
162162
name: rule_name.clone(),
163163
endpoints: vec![endpoint],
164164
binaries,
165+
middleware: Vec::new(),
165166
};
166167

167168
// Compute confidence.

crates/openshell-server/src/grpc/policy.rs

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5746,6 +5746,7 @@ mod tests {
57465746
path: "/usr/bin/curl".to_string(),
57475747
..Default::default()
57485748
}],
5749+
..Default::default()
57495750
};
57505751

57515752
let submit = handle_submit_policy_analysis(
@@ -5959,6 +5960,7 @@ mod tests {
59595960
path: "/usr/bin/curl".to_string(),
59605961
..Default::default()
59615962
}],
5963+
..Default::default()
59625964
};
59635965

59645966
let submit = handle_submit_policy_analysis(
@@ -6075,6 +6077,7 @@ mod tests {
60756077
path: "/usr/bin/curl".to_string(),
60766078
..Default::default()
60776079
}],
6080+
..Default::default()
60786081
};
60796082

60806083
handle_submit_policy_analysis(
@@ -6180,6 +6183,7 @@ mod tests {
61806183
path: "/usr/bin/curl".to_string(),
61816184
..Default::default()
61826185
}],
6186+
..Default::default()
61836187
};
61846188
let mechanistic_submit = handle_submit_policy_analysis(
61856189
&state,
@@ -6257,6 +6261,7 @@ mod tests {
62576261
path: "/usr/bin/curl".to_string(),
62586262
..Default::default()
62596263
}],
6264+
..Default::default()
62606265
};
62616266
let agent_submit = handle_submit_policy_analysis(
62626267
&state,
@@ -6384,6 +6389,7 @@ mod tests {
63846389
path: "/usr/bin/curl".to_string(),
63856390
..Default::default()
63866391
}],
6392+
..Default::default()
63876393
};
63886394

63896395
handle_submit_policy_analysis(
@@ -6484,6 +6490,7 @@ mod tests {
64846490
path: "/usr/bin/curl".to_string(),
64856491
..Default::default()
64866492
}],
6493+
..Default::default()
64876494
};
64886495

64896496
handle_submit_policy_analysis(
@@ -6584,6 +6591,7 @@ mod tests {
65846591
path: "/usr/bin/curl".to_string(),
65856592
..Default::default()
65866593
}],
6594+
..Default::default()
65876595
};
65886596

65896597
handle_submit_policy_analysis(
@@ -6677,6 +6685,7 @@ mod tests {
66776685
path: "/usr/bin/curl".to_string(),
66786686
..Default::default()
66796687
}],
6688+
..Default::default()
66806689
};
66816690

66826691
handle_submit_policy_analysis(
@@ -6761,6 +6770,7 @@ mod tests {
67616770
path: "/usr/bin/curl".to_string(),
67626771
..Default::default()
67636772
}],
6773+
..Default::default()
67646774
};
67656775

67666776
handle_submit_policy_analysis(
@@ -6849,6 +6859,7 @@ mod tests {
68496859
path: "/usr/bin/curl".to_string(),
68506860
..Default::default()
68516861
}],
6862+
..Default::default()
68526863
};
68536864

68546865
handle_submit_policy_analysis(
@@ -6940,6 +6951,7 @@ mod tests {
69406951
path: "/usr/bin/curl".to_string(),
69416952
..Default::default()
69426953
}],
6954+
..Default::default()
69436955
};
69446956

69456957
handle_submit_policy_analysis(
@@ -7026,6 +7038,7 @@ mod tests {
70267038
path: "/usr/bin/curl".to_string(),
70277039
..Default::default()
70287040
}],
7041+
..Default::default()
70297042
};
70307043

70317044
let response = handle_submit_policy_analysis(
@@ -7201,6 +7214,7 @@ mod tests {
72017214
path: "/usr/bin/curl".to_string(),
72027215
..Default::default()
72037216
}],
7217+
..Default::default()
72047218
};
72057219

72067220
handle_submit_policy_analysis(
@@ -7297,6 +7311,7 @@ mod tests {
72977311
path: "/usr/bin/curl".to_string(),
72987312
..Default::default()
72997313
}],
7314+
..Default::default()
73007315
};
73017316

73027317
handle_submit_policy_analysis(
@@ -7382,6 +7397,7 @@ mod tests {
73827397
path: "/usr/bin/curl".to_string(),
73837398
..Default::default()
73847399
}],
7400+
..Default::default()
73857401
};
73867402

73877403
handle_submit_policy_analysis(
@@ -7523,6 +7539,7 @@ mod tests {
75237539
path: "/usr/bin/curl".to_string(),
75247540
..Default::default()
75257541
}],
7542+
..Default::default()
75267543
};
75277544

75287545
handle_submit_policy_analysis(
@@ -7648,6 +7665,7 @@ mod tests {
76487665
path: "/usr/bin/curl".to_string(),
76497666
..Default::default()
76507667
}],
7668+
..Default::default()
76517669
};
76527670
let step1 = handle_submit_policy_analysis(
76537671
&state,
@@ -7689,6 +7707,7 @@ mod tests {
76897707
path: "/usr/bin/curl".to_string(),
76907708
..Default::default()
76917709
}],
7710+
..Default::default()
76927711
};
76937712
let step2 = handle_submit_policy_analysis(
76947713
&state,
@@ -7820,6 +7839,7 @@ mod tests {
78207839
path: "/usr/bin/curl".to_string(),
78217840
..Default::default()
78227841
}],
7842+
..Default::default()
78237843
};
78247844

78257845
let submit_one = |rule_name: &str, rule: NetworkPolicyRule| {
@@ -7928,6 +7948,7 @@ mod tests {
79287948
path: "/usr/bin/curl".to_string(),
79297949
..Default::default()
79307950
}],
7951+
..Default::default()
79317952
};
79327953
let submit_one = || {
79337954
let state = state.clone();
@@ -8028,6 +8049,7 @@ mod tests {
80288049
path: "/usr/bin/curl".to_string(),
80298050
..Default::default()
80308051
}],
8052+
..Default::default()
80318053
};
80328054

80338055
let submit = handle_submit_policy_analysis(
@@ -8159,6 +8181,7 @@ mod tests {
81598181
path: "/usr/bin/curl".to_string(),
81608182
..Default::default()
81618183
}],
8184+
..Default::default()
81628185
};
81638186

81648187
handle_submit_policy_analysis(
@@ -8356,6 +8379,7 @@ mod tests {
83568379
path: "/usr/bin/curl".to_string(),
83578380
..Default::default()
83588381
}],
8382+
..Default::default()
83598383
},
83608384
};
83618385

@@ -8384,6 +8408,7 @@ mod tests {
83848408
path: "/usr/bin/node".to_string(),
83858409
..Default::default()
83868410
}],
8411+
..Default::default()
83878412
},
83888413
};
83898414

@@ -8412,6 +8437,7 @@ mod tests {
84128437
path: "/usr/bin/node".to_string(),
84138438
..Default::default()
84148439
}],
8440+
..Default::default()
84158441
},
84168442
};
84178443

@@ -8439,6 +8465,7 @@ mod tests {
84398465
path: "/usr/bin/curl".to_string(),
84408466
..Default::default()
84418467
}],
8468+
..Default::default()
84428469
};
84438470
let chunk = DraftChunkRecord {
84448471
id: "chunk-1".to_string(),
@@ -8507,6 +8534,7 @@ mod tests {
85078534
path: "/usr/bin/curl".to_string(),
85088535
..Default::default()
85098536
}],
8537+
..Default::default()
85108538
},
85118539
))
85128540
.collect(),
@@ -8535,6 +8563,7 @@ mod tests {
85358563
path: "/usr/bin/curl".to_string(),
85368564
..Default::default()
85378565
}],
8566+
..Default::default()
85388567
};
85398568
let chunk = DraftChunkRecord {
85408569
id: "chunk-merge".to_string(),
@@ -8608,6 +8637,7 @@ mod tests {
86088637
path: "/usr/bin/curl".to_string(),
86098638
..Default::default()
86108639
}],
8640+
..Default::default()
86118641
},
86128642
))
86138643
.collect(),
@@ -8636,6 +8666,7 @@ mod tests {
86368666
path: "/usr/bin/curl".to_string(),
86378667
..Default::default()
86388668
}],
8669+
..Default::default()
86398670
};
86408671
let chunk = DraftChunkRecord {
86418672
id: "chunk-new".to_string(),
@@ -8771,7 +8802,7 @@ mod tests {
87718802
allowed_ips: vec!["127.0.0.1".to_string()],
87728803
..Default::default()
87738804
}],
8774-
binaries: vec![],
8805+
..Default::default()
87758806
};
87768807
let result = validate_rule_not_always_blocked(&rule);
87778808
assert!(result.is_err());
@@ -8792,7 +8823,7 @@ mod tests {
87928823
allowed_ips: vec!["169.254.169.254".to_string()],
87938824
..Default::default()
87948825
}],
8795-
binaries: vec![],
8826+
..Default::default()
87968827
};
87978828
let result = validate_rule_not_always_blocked(&rule);
87988829
assert!(result.is_err());
@@ -8810,7 +8841,7 @@ mod tests {
88108841
port: 80,
88118842
..Default::default()
88128843
}],
8813-
binaries: vec![],
8844+
..Default::default()
88148845
};
88158846
let result = validate_rule_not_always_blocked(&rule);
88168847
assert!(result.is_err());
@@ -8828,7 +8859,7 @@ mod tests {
88288859
port: 8080,
88298860
..Default::default()
88308861
}],
8831-
binaries: vec![],
8862+
..Default::default()
88328863
};
88338864
let result = validate_rule_not_always_blocked(&rule);
88348865
assert!(result.is_err());
@@ -8846,7 +8877,7 @@ mod tests {
88468877
port: 80,
88478878
..Default::default()
88488879
}],
8849-
binaries: vec![],
8880+
..Default::default()
88508881
};
88518882
let result = validate_rule_not_always_blocked(&rule);
88528883
assert!(result.is_err());
@@ -8893,7 +8924,7 @@ mod tests {
88938924
allowed_ips: vec!["10.0.5.0/24".to_string()],
88948925
..Default::default()
88958926
}],
8896-
binaries: vec![],
8927+
..Default::default()
88978928
};
88988929
let result = validate_rule_not_always_blocked(&rule);
88998930
assert!(result.is_ok());
@@ -8910,7 +8941,7 @@ mod tests {
89108941
port: 443,
89118942
..Default::default()
89128943
}],
8913-
binaries: vec![],
8944+
..Default::default()
89148945
};
89158946
let result = validate_rule_not_always_blocked(&rule);
89168947
assert!(result.is_ok());
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
// SPDX-License-Identifier: Apache-2.0
33

4-
pub(crate) mod secrets;
4+
pub mod secrets;

0 commit comments

Comments
 (0)