forked from NVIDIA/nemoclaw-community
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpolicy.yaml
More file actions
166 lines (165 loc) · 5.19 KB
/
Copy pathpolicy.yaml
File metadata and controls
166 lines (165 loc) · 5.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
version: 1
filesystem_policy:
include_workdir: true
read_only:
- /usr
- /lib
- /opt/hermes
- /proc
- /dev/urandom
- /app
- /etc
- /var/log
- /sandbox/.hermes
read_write:
- /sandbox
- /tmp
- /dev/null
- /sandbox/.hermes-data
landlock:
compatibility: best_effort
process:
run_as_user: sandbox
run_as_group: sandbox
network_policies:
# Load-bearing: per-path allow rules for the NVIDIA inference API.
# providers/compatible-endpoint.yaml grants read-write over these hosts but
# cannot express path scoping (v2 ProviderProfile schema has no rules[]).
# Removing this block widens egress to all /v1/* paths.
nvidia:
name: nvidia
endpoints:
- host: integrate.api.nvidia.com
port: 443
protocol: rest
tls: terminate
enforcement: enforce
rules:
- allow:
method: POST
path: /v1/chat/completions
- allow:
method: POST
path: /v1/completions
- allow:
method: POST
path: /v1/embeddings
- allow:
method: GET
path: /v1/models
- allow:
method: GET
path: /v1/models/**
- host: inference-api.nvidia.com
port: 443
protocol: rest
tls: terminate
enforcement: enforce
rules:
- allow:
method: POST
path: /v1/chat/completions
- allow:
method: POST
path: /v1/completions
- allow:
method: POST
path: /v1/embeddings
- allow:
method: GET
path: /v1/models
- allow:
method: GET
path: /v1/models/**
binaries:
- path: /usr/local/bin/hermes
- path: /opt/hermes/.venv/bin/hermes
- path: /usr/bin/python3
- path: /usr/bin/python3.13
- path: /opt/hermes/.venv/bin/python
# Credential-less host-routed service — no v2 provider profile equivalent.
# Sandbox policy is the sole authorization gate.
phoenix_collector:
name: phoenix_collector
endpoints:
- host: host.openshell.internal
port: 6006
protocol: rest
enforcement: enforce
allowed_ips:
- 10.0.0.0/8
- 172.0.0.0/8
- 192.168.0.0/16
- fc00::/7
rules:
- allow:
method: POST
path: /**
binaries:
- path: /usr/bin/python3
- path: /usr/bin/python3.13
- path: /opt/hermes/.venv/bin/python
# Credential-less host-routed service — see phoenix_collector above.
source_etl_api:
name: source_etl_api
endpoints:
- host: host.openshell.internal
port: 3100
protocol: rest
enforcement: enforce
allowed_ips:
- 10.0.0.0/8
- 172.0.0.0/8
- 192.168.0.0/16
- fc00::/7
rules:
- allow:
method: GET
path: /**
binaries:
- path: /usr/bin/python3
- path: /usr/bin/python3.13
- path: /opt/hermes/.venv/bin/python
- path: /usr/local/bin/hermes
- path: /opt/hermes/.venv/bin/hermes
- path: /usr/bin/curl
# Load-bearing: per-repo path scoping for live GitHub REST reads.
# providers/github.yaml grants read-only over all of api.github.com.
# This block is the sole gate preventing reads from repos other than
# $GITHUB_READONLY_REPO. Do not delete without an upstream OpenShell
# change that adds per-path rules to the v2 ProviderProfile schema.
github_repo_readonly:
name: github-repo-readonly
# scripts/03-sandbox.sh replaces __GITHUB_READONLY_REPO__ with
# GITHUB_READONLY_REPO from .env before applying this policy.
endpoints:
- host: api.github.com
port: 443
protocol: rest
tls: terminate
enforcement: enforce
rules:
- allow: { method: GET, path: /rate_limit }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__ }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/issues }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/issues/** }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/labels }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/labels/** }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/milestones }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/milestones/** }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/pulls }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/pulls/** }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/commits }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/commits/** }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/branches }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/branches/** }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/contents }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/contents/** }
- allow: { method: GET, path: /repos/__GITHUB_READONLY_REPO__/readme }
binaries:
- path: /usr/bin/curl
- path: /usr/bin/python3
- path: /usr/bin/python3.13
- path: /opt/hermes/.venv/bin/python