Skip to content

Commit b429440

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

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
@@ -5718,6 +5718,7 @@ mod tests {
57185718
path: "/usr/bin/curl".to_string(),
57195719
..Default::default()
57205720
}],
5721+
..Default::default()
57215722
};
57225723

57235724
let submit = handle_submit_policy_analysis(
@@ -5931,6 +5932,7 @@ mod tests {
59315932
path: "/usr/bin/curl".to_string(),
59325933
..Default::default()
59335934
}],
5935+
..Default::default()
59345936
};
59355937

59365938
let submit = handle_submit_policy_analysis(
@@ -6047,6 +6049,7 @@ mod tests {
60476049
path: "/usr/bin/curl".to_string(),
60486050
..Default::default()
60496051
}],
6052+
..Default::default()
60506053
};
60516054

60526055
handle_submit_policy_analysis(
@@ -6152,6 +6155,7 @@ mod tests {
61526155
path: "/usr/bin/curl".to_string(),
61536156
..Default::default()
61546157
}],
6158+
..Default::default()
61556159
};
61566160
let mechanistic_submit = handle_submit_policy_analysis(
61576161
&state,
@@ -6229,6 +6233,7 @@ mod tests {
62296233
path: "/usr/bin/curl".to_string(),
62306234
..Default::default()
62316235
}],
6236+
..Default::default()
62326237
};
62336238
let agent_submit = handle_submit_policy_analysis(
62346239
&state,
@@ -6356,6 +6361,7 @@ mod tests {
63566361
path: "/usr/bin/curl".to_string(),
63576362
..Default::default()
63586363
}],
6364+
..Default::default()
63596365
};
63606366

63616367
handle_submit_policy_analysis(
@@ -6456,6 +6462,7 @@ mod tests {
64566462
path: "/usr/bin/curl".to_string(),
64576463
..Default::default()
64586464
}],
6465+
..Default::default()
64596466
};
64606467

64616468
handle_submit_policy_analysis(
@@ -6556,6 +6563,7 @@ mod tests {
65566563
path: "/usr/bin/curl".to_string(),
65576564
..Default::default()
65586565
}],
6566+
..Default::default()
65596567
};
65606568

65616569
handle_submit_policy_analysis(
@@ -6649,6 +6657,7 @@ mod tests {
66496657
path: "/usr/bin/curl".to_string(),
66506658
..Default::default()
66516659
}],
6660+
..Default::default()
66526661
};
66536662

66546663
handle_submit_policy_analysis(
@@ -6733,6 +6742,7 @@ mod tests {
67336742
path: "/usr/bin/curl".to_string(),
67346743
..Default::default()
67356744
}],
6745+
..Default::default()
67366746
};
67376747

67386748
handle_submit_policy_analysis(
@@ -6821,6 +6831,7 @@ mod tests {
68216831
path: "/usr/bin/curl".to_string(),
68226832
..Default::default()
68236833
}],
6834+
..Default::default()
68246835
};
68256836

68266837
handle_submit_policy_analysis(
@@ -6912,6 +6923,7 @@ mod tests {
69126923
path: "/usr/bin/curl".to_string(),
69136924
..Default::default()
69146925
}],
6926+
..Default::default()
69156927
};
69166928

69176929
handle_submit_policy_analysis(
@@ -6998,6 +7010,7 @@ mod tests {
69987010
path: "/usr/bin/curl".to_string(),
69997011
..Default::default()
70007012
}],
7013+
..Default::default()
70017014
};
70027015

70037016
let response = handle_submit_policy_analysis(
@@ -7085,6 +7098,7 @@ mod tests {
70857098
path: "/usr/bin/curl".to_string(),
70867099
..Default::default()
70877100
}],
7101+
..Default::default()
70887102
};
70897103

70907104
handle_submit_policy_analysis(
@@ -7181,6 +7195,7 @@ mod tests {
71817195
path: "/usr/bin/curl".to_string(),
71827196
..Default::default()
71837197
}],
7198+
..Default::default()
71847199
};
71857200

71867201
handle_submit_policy_analysis(
@@ -7266,6 +7281,7 @@ mod tests {
72667281
path: "/usr/bin/curl".to_string(),
72677282
..Default::default()
72687283
}],
7284+
..Default::default()
72697285
};
72707286

72717287
handle_submit_policy_analysis(
@@ -7407,6 +7423,7 @@ mod tests {
74077423
path: "/usr/bin/curl".to_string(),
74087424
..Default::default()
74097425
}],
7426+
..Default::default()
74107427
};
74117428

74127429
handle_submit_policy_analysis(
@@ -7532,6 +7549,7 @@ mod tests {
75327549
path: "/usr/bin/curl".to_string(),
75337550
..Default::default()
75347551
}],
7552+
..Default::default()
75357553
};
75367554
let step1 = handle_submit_policy_analysis(
75377555
&state,
@@ -7573,6 +7591,7 @@ mod tests {
75737591
path: "/usr/bin/curl".to_string(),
75747592
..Default::default()
75757593
}],
7594+
..Default::default()
75767595
};
75777596
let step2 = handle_submit_policy_analysis(
75787597
&state,
@@ -7704,6 +7723,7 @@ mod tests {
77047723
path: "/usr/bin/curl".to_string(),
77057724
..Default::default()
77067725
}],
7726+
..Default::default()
77077727
};
77087728

77097729
let submit_one = |rule_name: &str, rule: NetworkPolicyRule| {
@@ -7812,6 +7832,7 @@ mod tests {
78127832
path: "/usr/bin/curl".to_string(),
78137833
..Default::default()
78147834
}],
7835+
..Default::default()
78157836
};
78167837
let submit_one = || {
78177838
let state = state.clone();
@@ -7912,6 +7933,7 @@ mod tests {
79127933
path: "/usr/bin/curl".to_string(),
79137934
..Default::default()
79147935
}],
7936+
..Default::default()
79157937
};
79167938

79177939
let submit = handle_submit_policy_analysis(
@@ -8043,6 +8065,7 @@ mod tests {
80438065
path: "/usr/bin/curl".to_string(),
80448066
..Default::default()
80458067
}],
8068+
..Default::default()
80468069
};
80478070

80488071
handle_submit_policy_analysis(
@@ -8240,6 +8263,7 @@ mod tests {
82408263
path: "/usr/bin/curl".to_string(),
82418264
..Default::default()
82428265
}],
8266+
..Default::default()
82438267
},
82448268
};
82458269

@@ -8268,6 +8292,7 @@ mod tests {
82688292
path: "/usr/bin/node".to_string(),
82698293
..Default::default()
82708294
}],
8295+
..Default::default()
82718296
},
82728297
};
82738298

@@ -8296,6 +8321,7 @@ mod tests {
82968321
path: "/usr/bin/node".to_string(),
82978322
..Default::default()
82988323
}],
8324+
..Default::default()
82998325
},
83008326
};
83018327

@@ -8323,6 +8349,7 @@ mod tests {
83238349
path: "/usr/bin/curl".to_string(),
83248350
..Default::default()
83258351
}],
8352+
..Default::default()
83268353
};
83278354
let chunk = DraftChunkRecord {
83288355
id: "chunk-1".to_string(),
@@ -8391,6 +8418,7 @@ mod tests {
83918418
path: "/usr/bin/curl".to_string(),
83928419
..Default::default()
83938420
}],
8421+
..Default::default()
83948422
},
83958423
))
83968424
.collect(),
@@ -8419,6 +8447,7 @@ mod tests {
84198447
path: "/usr/bin/curl".to_string(),
84208448
..Default::default()
84218449
}],
8450+
..Default::default()
84228451
};
84238452
let chunk = DraftChunkRecord {
84248453
id: "chunk-merge".to_string(),
@@ -8492,6 +8521,7 @@ mod tests {
84928521
path: "/usr/bin/curl".to_string(),
84938522
..Default::default()
84948523
}],
8524+
..Default::default()
84958525
},
84968526
))
84978527
.collect(),
@@ -8520,6 +8550,7 @@ mod tests {
85208550
path: "/usr/bin/curl".to_string(),
85218551
..Default::default()
85228552
}],
8553+
..Default::default()
85238554
};
85248555
let chunk = DraftChunkRecord {
85258556
id: "chunk-new".to_string(),
@@ -8655,7 +8686,7 @@ mod tests {
86558686
allowed_ips: vec!["127.0.0.1".to_string()],
86568687
..Default::default()
86578688
}],
8658-
binaries: vec![],
8689+
..Default::default()
86598690
};
86608691
let result = validate_rule_not_always_blocked(&rule);
86618692
assert!(result.is_err());
@@ -8676,7 +8707,7 @@ mod tests {
86768707
allowed_ips: vec!["169.254.169.254".to_string()],
86778708
..Default::default()
86788709
}],
8679-
binaries: vec![],
8710+
..Default::default()
86808711
};
86818712
let result = validate_rule_not_always_blocked(&rule);
86828713
assert!(result.is_err());
@@ -8694,7 +8725,7 @@ mod tests {
86948725
port: 80,
86958726
..Default::default()
86968727
}],
8697-
binaries: vec![],
8728+
..Default::default()
86988729
};
86998730
let result = validate_rule_not_always_blocked(&rule);
87008731
assert!(result.is_err());
@@ -8712,7 +8743,7 @@ mod tests {
87128743
port: 8080,
87138744
..Default::default()
87148745
}],
8715-
binaries: vec![],
8746+
..Default::default()
87168747
};
87178748
let result = validate_rule_not_always_blocked(&rule);
87188749
assert!(result.is_err());
@@ -8730,7 +8761,7 @@ mod tests {
87308761
port: 80,
87318762
..Default::default()
87328763
}],
8733-
binaries: vec![],
8764+
..Default::default()
87348765
};
87358766
let result = validate_rule_not_always_blocked(&rule);
87368767
assert!(result.is_err());
@@ -8777,7 +8808,7 @@ mod tests {
87778808
allowed_ips: vec!["10.0.5.0/24".to_string()],
87788809
..Default::default()
87798810
}],
8780-
binaries: vec![],
8811+
..Default::default()
87818812
};
87828813
let result = validate_rule_not_always_blocked(&rule);
87838814
assert!(result.is_ok());
@@ -8794,7 +8825,7 @@ mod tests {
87948825
port: 443,
87958826
..Default::default()
87968827
}],
8797-
binaries: vec![],
8828+
..Default::default()
87988829
};
87998830
let result = validate_rule_not_always_blocked(&rule);
88008831
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)