{"title":"OpenShell 0.1.0’s Read-Only API Rules Need Enforce Mode to Block Writes","description":"NVIDIA’s versioned documentation distinguishes connection denial from request-level enforcement. For an allowed REST endpoint, a read-only rule in the default audit mode logs and forwards a disallowed write; enforce mode blocks it.","dataset_id":"spd:openshell-s-read-only-rules-when-do-they-block-writes-rather-than-log-them-ae21dc17","canonical_url":"https://superpowerdaily.com/research/openshell-s-read-only-rules-when-do-they-block-writes-rather-than-log-them-ae21dc17","version_url":"https://superpowerdaily.com/research/openshell-s-read-only-rules-when-do-they-block-writes-rather-than-log-them-ae21dc17","version":"v1","snapshot_hash":"51d07c7ab8de0e7e0e606067a4d607ad16f654f61ffd8e010237a66b369d0f39","date_created":"2026-09-30T16:31:06.322Z","date_modified":"2026-09-30T16:31:06.322Z","license":{"name":"Superpower Daily data reuse terms","url":"https://superpowerdaily.com/terms"},"license_url":"https://superpowerdaily.com/terms","coverage_note":"Version-pinned OpenShell 0.1.0 documentation and the five selected examples only. The requested cutoff was September 28, 2026, 20:31 UTC, but four supplied documentation snapshots were retrieved afterward, at 20:35:37 UTC. Their exact pre-cutoff contents are unverified.","measurement_technique":["Treat September 28, 2026, 20:31 UTC as the evidence cutoff. The supplied documentation snapshots were retrieved at 20:35:37 UTC; recovering them is not a new collection or experiment and cannot establish their exact contents at the cutoff.","Use the supplied OpenShell 0.1.0 default-policy, network-rules, schema, security-guidance and tutorial evidence to separate connection matching, request inspection and enforcement. Label outcomes as documented rather than runtime-observed.","Count only the bounded sample of five distinct REST read-only configurations: the network-rules page’s GitHub, PyPI, npm and internal-API examples, plus the first-network-policy tutorial. All five explicitly specify enforce; this is not a documentation-wide count.","Apply the checklist to the whole effective policy: identify matching host, port and binary rules; check protocol and access; check enforcement; then account for provider rules, overlapping endpoints and matching denies."],"methodology":["Treat September 28, 2026, 20:31 UTC as the evidence cutoff. The supplied documentation snapshots were retrieved at 20:35:37 UTC; recovering them is not a new collection or experiment and cannot establish their exact contents at the cutoff.","Use the supplied OpenShell 0.1.0 default-policy, network-rules, schema, security-guidance and tutorial evidence to separate connection matching, request inspection and enforcement. Label outcomes as documented rather than runtime-observed.","Count only the bounded sample of five distinct REST read-only configurations: the network-rules page’s GitHub, PyPI, npm and internal-API examples, plus the first-network-policy tutorial. All five explicitly specify enforce; this is not a documentation-wide count.","Apply the checklist to the whole effective policy: identify matching host, port and binary rules; check protocol and access; check enforcement; then account for provider rules, overlapping endpoints and matching denies."],"metrics":[{"label":"Verified observations","value":"9","detail":"5 measured fields"},{"label":"Supported claims","value":"8","detail":"8 material findings"},{"label":"Cited sources","value":"6","detail":"6 primary or authoritative"},{"label":"Research score","value":"84","detail":"Automated topic and evidence score"}],"columns":[{"key":"entity","label":"Entity"},{"key":"metric","label":"Metric"},{"key":"value","label":"Value"},{"key":"unit","label":"Unit"},{"key":"observed","label":"Observed"},{"key":"source","label":"Source"},{"key":"transform","label":"Transform"}],"data":[{"unit":null,"value":"Request forwarded and rule violation logged","entity":"Inspected REST endpoint with read-only access","metric":"documented policy outcome: disallowed POST with enforcement audit","source":"https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/network-rules","observed":null,"transform":null},{"unit":null,"value":"Request blocked; HTTP client receives OpenShell policy_denied","entity":"Inspected REST endpoint with read-only access","metric":"documented policy outcome: disallowed POST with enforcement enforce","source":"https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/network-rules","observed":null,"transform":null},{"unit":null,"value":"Connection denied before request inspection","entity":"Outbound connection","metric":"documented policy outcome: no matching host/port/binary rule","source":"https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/network-rules","observed":null,"transform":null},{"unit":null,"value":"No method/path rule applied; requests permitted subject to separate checks","entity":"Allowed endpoint","metric":"documented policy outcome: protocol omitted","source":"https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/network-rules","observed":null,"transform":null},{"unit":null,"value":"enforce","entity":"First Network Policy: GitHub API","metric":"explicit enforcement setting","source":"https://docs.nvidia.com/openshell/v0.1.0/tutorials/first-network-policy","observed":null,"transform":null},{"unit":null,"value":"enforce","entity":"Network Rules: GitHub read-only API","metric":"explicit enforcement setting","source":"https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/network-rules","observed":null,"transform":null},{"unit":null,"value":"enforce","entity":"Network Rules: internal API","metric":"explicit enforcement setting","source":"https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/network-rules","observed":null,"transform":null},{"unit":null,"value":"enforce","entity":"Network Rules: npm installs","metric":"explicit enforcement setting","source":"https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/network-rules","observed":null,"transform":null},{"unit":null,"value":"enforce on both listed REST endpoints","entity":"Network Rules: PyPI downloads","metric":"explicit enforcement setting","source":"https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/network-rules","observed":null,"transform":null}],"sources":[{"url":"https://developer.nvidia.com/blog/add-runtime-controls-to-ai-agents-with-nvidia-openshell","name":"NVIDIA","title":"Add Runtime Controls to AI Agents with NVIDIA OpenShell | NVIDIA Technical Blog","records":0},{"url":"https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/default-policy","name":"NVIDIA","title":"Default Policy and Baseline Paths | NVIDIA OpenShell","records":0},{"url":"https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/network-rules","name":"NVIDIA","title":"Network Rules | NVIDIA OpenShell","records":8},{"url":"https://docs.nvidia.com/openshell/v0.1.0/security/best-practices","name":"NVIDIA","title":"OpenShell Security Best Practices for Controls, Risks, and Configuration Guidance | NVIDIA OpenShell","records":0},{"url":"https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/schema","name":"NVIDIA","title":"Policy Schema Reference | NVIDIA OpenShell","records":0},{"url":"https://docs.nvidia.com/openshell/v0.1.0/tutorials/first-network-policy","name":"NVIDIA","title":"Write Your First Sandbox Network Policy | NVIDIA OpenShell","records":1}],"provenance":{"publisher":"Superpower Daily","source_count":6,"source_urls":["https://developer.nvidia.com/blog/add-runtime-controls-to-ai-agents-with-nvidia-openshell","https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/default-policy","https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/network-rules","https://docs.nvidia.com/openshell/v0.1.0/security/best-practices","https://docs.nvidia.com/openshell/v0.1.0/how-it-works/policies/schema","https://docs.nvidia.com/openshell/v0.1.0/tutorials/first-network-policy"],"methodology":["Treat September 28, 2026, 20:31 UTC as the evidence cutoff. The supplied documentation snapshots were retrieved at 20:35:37 UTC; recovering them is not a new collection or experiment and cannot establish their exact contents at the cutoff.","Use the supplied OpenShell 0.1.0 default-policy, network-rules, schema, security-guidance and tutorial evidence to separate connection matching, request inspection and enforcement. Label outcomes as documented rather than runtime-observed.","Count only the bounded sample of five distinct REST read-only configurations: the network-rules page’s GitHub, PyPI, npm and internal-API examples, plus the first-network-policy tutorial. All five explicitly specify enforce; this is not a documentation-wide count.","Apply the checklist to the whole effective policy: identify matching host, port and binary rules; check protocol and access; check enforcement; then account for provider rules, overlapping endpoints and matching denies."],"snapshot_hash":"51d07c7ab8de0e7e0e606067a4d607ad16f654f61ffd8e010237a66b369d0f39"},"distributions":{"csv":"https://superpowerdaily.com/api/research/openshell-s-read-only-rules-when-do-they-block-writes-rather-than-log-them-ae21dc17?format=csv","json":"https://superpowerdaily.com/api/research/openshell-s-read-only-rules-when-do-they-block-writes-rather-than-log-them-ae21dc17?format=json"}}