Files
przeprogramowani 2f4ebd3b75 docs: wymagania sieciowe dla urządzeń służbowych (allowlist PL+EN) (#53)
* docs: add corporate network allowlist for security/sysadmin teams

Polish sysadmin spec plus a machine-readable host list and a source-scan
test so new CLI destinations cannot land undocumented.

* chore(release): prepare v1.23.1

* docs: rewrite corporate allowlist in sysadmin language (PL+EN)

Plain host/port/protocol tables, matching English document, and an
allowlist test that covers both language files.

* docs: drop localhost from the corporate network allowlist

Public DNS names only; the source scan skips IP literals and
single-label hosts so local-dev URLs stay out of the sysadmin spec.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-09-18 17:17:28 +02:00

7.4 KiB
Raw Permalink Blame History

10x-cli network requirements

Polish: wymagania-sieciowe.md.
Machine-readable host list: network-allowlist.json.

10x-cli (@przeprogramowani/10x-cli) signs a 10xDevs course user in and writes lesson files to disk. It does not open a listening port. It does not upload project source code.


Allowlist

Every row: HTTPS, TCP 443, from the device.

Required for course use

Host Port Protocol Purpose Without it
10x-toolkit-api.przeprogramowani.workers.dev 443 HTTPS Login, token refresh, lesson list and content, 10x doctor 10x auth, list, get, sync fail; doctor reports the API unreachable
registry.npmjs.org 443 HTTPS Install and update @przeprogramowani/10x-cli (npx / npm install -g) npm install and upgrade fail. 10x doctor still runs — it skips the version check
toolkit.przeprogramowani.pl 443 HTTPS Login email link (/auth/callback) opened in the browser Email login (10x auth) does not finish after the user clicks the link

10x-cli calls the API only at 10x-toolkit-api.przeprogramowani.workers.dev. toolkit.przeprogramowani.pl is browser-only, for email login.

Browser — Circle login

Host Port Protocol Purpose Without it
10x-toolkit-api.przeprogramowani.workers.dev 443 HTTPS Approval page from the Circle message 10x auth --method circle waits until the link expires
app.circle.so 443 HTTPS Reading the Circle message that contains the link The user cannot open the message (the 10x process does not connect here)

Optional

Host Port Protocol Purpose Without it
10xbench.ai 443 HTTPS Model leaderboard (10x bench) 10x bench fails; lesson download is unchanged
github.com 443 HTTPS git clone of the 10x-bench-kit template; optional GitHub Releases binary 10x bench-kit cannot fetch the template. Course get / sync unchanged
objects.githubusercontent.com 443 HTTPS GitHub Releases asset CDN (unconfirmed) Downloading the standalone binary from Releases may fail
release-assets.githubusercontent.com 443 HTTPS GitHub Releases asset CDN (unconfirmed) same
10xdevs.pl 443 HTTPS Course enrolment site (error-message hint only) No effect on the CLI

10x bench-kit may also run git ls-remote against the origin of the repo where the command was invoked — that host is whatever the users git config already uses.


Protocol and TLS

  • HTTPS / TLS, TCP 443. Login: POST/GET and repeated HTTP (every 2 s, up to 5 min). No WebSocket or SSE.
  • API and 10xbench timeout: 30 s. doctor → API: 5 s. doctor → npm: 2 s.
  • User-Agent: 10x-cli.
  • The CLI does not listen on any port.

Corporate TLS inspection (custom CA):

Setting Fact
NODE_EXTRA_CA_CERTS Node.js appends a PEM CA file. Applies when 10x runs on Node (npm install).
OS certificate store The CLI does not enable --use-system-ca.
HTTPS_PROXY / HTTP_PROXY / NO_PROXY npm / npx usually honour these. Node 20 fetch (CLI minimum) does not unless NODE_USE_ENV_PROXY=1 (Node 24+). On Node 2022, proxy for 10x auth / 10x get is unconfirmed.
Standalone binary Different runtime from Node. NODE_EXTRA_CA_CERTS / HTTPS_PROXY: unconfirmed.

If inspection breaks TLS: point NODE_EXTRA_CA_CERTS at the corporate root, or disable inspection for the hosts in the tables.


On the device

Component Required
Node.js ≥ 20 Yes for npm/npx install
npm / npx Yes for npm install. No for the standalone binary
git 10x bench-kit only
Docker / Podman Not for the CLI
OS macOS, Linux, Windows

Session tokens (email, access/refresh JWT, expiry) — not a Circle password:

OS Directory Files Permissions (POSIX)
macOS / Linux $XDG_CONFIG_HOME/10x-cli or ~/.config/10x-cli auth.json, config.json directory 0700, auth.json 0600
Windows %APPDATA%\10x-cli same files

Lesson files are written into the users project directory (for example .claude/skills/, CLAUDE.md).


Data leaving the device

Data When
Email address 10x auth; stored in auth.json
JWT access + refresh Login and every API call (Authorization: Bearer)
Hostname and a short OS string Start of 10x auth --method circle only
User-Agent 10x-cli Every CLI request
Package-version GET (no token) 10x doctorregistry.npmjs.org
Public leaderboard JSON (no token) 10x bench

Project source code is not uploaded.


AI coding tools (separate allowlist)

10x-cli does not call Anthropic, OpenAI, Google, or OpenRouter. It writes files for the chosen --tool. Model traffic is that tools traffic.

--tool Vendor network requirements
claude-code Claude Code — enterprise network
cursor Cursor — network configuration
copilot GitHub Copilot allowlist
codex Codex — network — full local-CLI host list: confirm with OpenAI
gemini Gemini Code Assist network access — confirm for Gemini CLI
kiro Kiro — firewalls and proxies
devin-desktop (windsurf alias) Devin Desktop — domains
generic No vendor

How to verify

curl -I --max-time 10 https://10x-toolkit-api.przeprogramowani.workers.dev/health
curl -I --max-time 10 https://registry.npmjs.org/@przeprogramowani/10x-cli/latest
curl -I --max-time 10 https://toolkit.przeprogramowani.pl/auth/callback
curl -I --max-time 10 https://10xbench.ai/api/leaderboard.json
curl -I --max-time 10 https://github.com/przeprogramowani/10x-bench-kit

TLS handshake matters (HTTP 200 is not required). On the device: 10x doctor.

Blocked host CLI message
API Could not reach the 10x-toolkit API.
doctor, 5 s timeout {url} did not respond within 5s.
doctor, other network error {url} is unreachable.
npm (does not fail doctor) 10x-cli {version} (update check skipped).
10x bench Could not reach 10xbench.ai.
10x bench-kit Could not download the template from https://github.com/przeprogramowani/10x-bench-kit.
bad certificate / intercept network_error plus the runtime message

Exit codes: 0 success, 1 error, 2 usage, 3 auth required, 4 forbidden, 5 not found. doctor with a dead API: 78.


Keeping this list current

Canonical hosts: network-allowlist.json. tests/network-allowlist.test.ts fails if src/ or this document / the Polish version introduce a host outside the list. A new host = the same PR: JSON + EN + PL.