-
Notifications
You must be signed in to change notification settings - Fork 788
refactor(openshell-sandbox): Split sandbox into process and network subcrates.
#1650
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
rrhubenov
wants to merge
48
commits into
NVIDIA:main
Choose a base branch
from
rrhubenov:refactor/split-sandbox
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+2,770
−2,039
Open
Changes from all commits
Commits
Show all changes
48 commits
Select commit
Hold shift + click to select a range
1e22061
refactor(sandbox): extract run_networking from run_sandbox
rrhubenov 26e500c
refactor(sandbox): extract run_process and lift netns to run_sandbox
rrhubenov 228d5a7
chore(workspace): scaffold openshell-supervisor-networking and opensh…
rrhubenov b045ef7
refactor(core): lift DenialEvent to openshell-core
rrhubenov 0550542
refactor(core): lift normalize_path to openshell-core
rrhubenov ce0c9b4
refactor(core): lift SandboxPolicy and friends to openshell-core
rrhubenov 2bade76
refactor(supervisor-process): move child_env from openshell-sandbox
rrhubenov 1327bba
refactor(supervisor-process): move skills from openshell-sandbox
rrhubenov 8bbdbab
refactor(supervisor-networking): move mechanistic_mapper from openshe…
rrhubenov 6da781d
refactor(core): lift procfs to openshell-core
rrhubenov 509be1c
refactor(supervisor-networking): move identity from openshell-sandbox
rrhubenov 058bc45
refactor(supervisor-process): move agent-proposals flag from openshel…
rrhubenov b90f7ee
refactor(core): lift secrets to openshell-core
rrhubenov 960bf68
refactor(core): lift provider_credentials to openshell-core
rrhubenov b9dc830
style: rustfmt import ordering
rrhubenov d1d40f7
refactor(ocsf): move SandboxContext singleton from openshell-sandbox
rrhubenov 57a97bb
refactor(core): lift grpc_client to openshell-core
rrhubenov df881df
refactor(supervisor-networking): move denial_aggregator from openshel…
rrhubenov 3b70ad8
refactor(supervisor-process): move log_push from openshell-sandbox
rrhubenov 159efcb
refactor(supervisor-process): move bypass_monitor from openshell-sandbox
rrhubenov 1dfb8e8
refactor(supervisor-process): move debug_rpc from openshell-sandbox
rrhubenov db86d51
refactor(supervisor-process): move supervisor_session from openshell-…
rrhubenov 8114e8d
refactor(supervisor-process): lift managed_children tracker from open…
rrhubenov 0c62902
refactor(supervisor-process): move sandbox hardening from openshell-s…
rrhubenov e4f042f
refactor(core): lift proposals flag from openshell-supervisor-process
rrhubenov 0c4127b
refactor(core): lift netns + nft_ruleset from openshell-sandbox
rrhubenov d0c5b72
refactor(supervisor-process): move process.rs and ssh.rs from openshe…
rrhubenov 436f138
refactor(supervisor-networking): move proxy, l7, opa, policy_local fr…
rrhubenov bec10f3
refactor(sandbox): hoist policy poll loop and denial aggregator into …
rrhubenov c8ad6c9
refactor(supervisor-process): move run_process from openshell-sandbox
rrhubenov 49e9b27
refactor(supervisor-networking): move bypass_monitor from supervisor-…
rrhubenov 145a4ad
refactor(supervisor-networking): move inference route helpers from op…
rrhubenov 0aefa69
refactor(supervisor-networking): move run_networking from openshell-s…
rrhubenov dd65374
fix(workspace): align Cargo deps and call sites for split crates
rrhubenov b1fd663
refactor(supervisor-network): rename openshell-supervisor-networking …
rrhubenov 315d0b2
refactor(supervisor-network): own denial-aggregator flush end-to-end
rrhubenov 0a3bbda
refactor(supervisor-network): own symlink-resolution task
rrhubenov 22f39c1
refactor(supervisor-process): move seccomp install into run_process
rrhubenov dfd2aa2
refactor(supervisor-process): move check_runtime_pid_limit into run_p…
rrhubenov 748f578
refactor(supervisor-process): move validate_sandbox_user to process c…
rrhubenov c05febb
refactor(supervisor-process): move prepare_filesystem to process crate
rrhubenov 0830218
refactor(supervisor-process): move startup skill install into run_pro…
rrhubenov d0335cf
refactor(supervisor-network): own PolicyLocalContext construction
rrhubenov f525d86
feat(supervisor): add --mode flag to gate network/process leaves
rrhubenov 76a89cf
style(supervisor-process): rustfmt long debug! line
rrhubenov e065e98
refactor(supervisor-network): pull DenialEvent down from core
rrhubenov 33e00fd
refactor(supervisor-network): pull procfs down from core
rrhubenov 8526c54
style(supervisor-network): run cargo fmt
rrhubenov File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
netns/nft_rulesetprobably don't belong inopenshell-core. These modules are privileged Linux supervisor runtime implementation: they create namespaces, manage veths, invokeip/nsenter/nft, install bypass rules, and emit sandbox OCSF events. That makescoreown sandbox enforcement machinery, not just shared types/config.Can we keep this out of core? The process leaf appears to only need the namespace fd for
setns, so one option is for the network/orchestrator side to own theNetworkNamespaceRAII handle and pass anOption<i32>fd intorun_process. If more sharing is needed, a small supervisor-runtime/netns crate would preserve the noprocess <-> networkdependency rule without expandingopenshell-coreinto privileged runtime code.