Skip to content

AX-1941: add *.jfrog.io to workspace sandbox allowlist - #79

Closed
MatanEden1 wants to merge 5 commits into
mainfrom
ax-1941-sandbox-allowlist
Closed

AX-1941: add *.jfrog.io to workspace sandbox allowlist#79
MatanEden1 wants to merge 5 commits into
mainfrom
ax-1941-sandbox-allowlist

Conversation

@MatanEden1

Copy link
Copy Markdown
Contributor

Summary

Cursor's Agents Window (CURSOR_SANDBOX=seatbelt) blocks *.jfrog.io by default. All HTTPS is forced through an ephemeral local proxy; *.jfrog.io returns 403 while public registries (npmjs, pypi, nodejs.org) are already allowed by Cursor's defaults.

Adds a workspace .cursor/sandbox.json to unblock *.jfrog.io. Workspace allowlists are unioned with Cursor's defaults — only the missing host needs to be listed.

Changes

  • .cursor/sandbox.json — workspace network allowlist adding *.jfrog.io
  • scripts/test-sandbox-network.sh — probe script to verify the fix from inside the Agents Window

Test plan

Run scripts/test-sandbox-network.sh from inside the Agents Window after applying this change. Exit 0 = hosts reachable, exit 1 = still blocked.

  • Not yet verified hands-on that .cursor/sandbox.json applies to the Agents Window surface specifically (pending hands-on check)

Follow-up

Once verified, a separate PR will update the three cursor-plugin instruction sites that currently dead-end agents on full_network/required_permissions with no fallback.

Closes #78

Made with Cursor

Co-authored-by: Cursor <cursoragent@cursor.com>
@MatanEden1
MatanEden1 force-pushed the ax-1941-sandbox-allowlist branch from f818cad to 9902a27 Compare August 27, 2026 13:11
MatanEden1 and others added 4 commits August 27, 2026 16:24
- Revert the 403-as-blocked change: a server-side 403 means the CONNECT
  tunnel succeeded and the host IS reachable. Only HTTP 000 means blocked.
- Use arithmetic (( blocked )) instead of string comparison.
- Print HTTPS_PROXY in env diagnostics (all probed URLs are HTTPS).

Co-authored-by: Cursor <cursoragent@cursor.com>
Do not append 000 when curl exits 56; that concatenated to 000000 and treated a CONNECT drop as reachable.

Co-authored-by: Cursor <cursoragent@cursor.com>
- sandbox.json: add explicit "default": "deny" for clarity
- test script: add DENY_HOSTS probe for negative coverage
- test script: remove 2>/dev/null so curl errors are visible
- test script: add --connect-timeout 3 for fast failure on blocked hosts

Co-authored-by: Cursor <cursoragent@cursor.com>
- sandbox.json: remove "default":"deny" — workspace allow entries are unioned
  with Cursor's defaults; an explicit deny directive risked replacing them
- test script: replace example.com deny-hosts with RFC 5737 (203.0.113.1) and
  RFC 2606 (.invalid TLD) addresses that are structurally guaranteed unreachable,
  preventing future false failures if Cursor's defaults ever include example.com
- test script: add proxy env-vars guard — exit 2 when CURSOR_SANDBOX=seatbelt
  but neither HTTP_PROXY nor HTTPS_PROXY is set (curl would bypass the proxy,
  making every host look reachable)
- test script: add want-argument validation in probe() to catch typos early
- test script: clarify the curl "000" and ((fail++)) || true comments

Co-authored-by: Cursor <cursoragent@cursor.com>
@MatanEden1

Copy link
Copy Markdown
Contributor Author

Superseded by #80, which includes all code review fixes.

@MatanEden1 MatanEden1 closed this Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant