Skip to content

docs: show the console path for the two network operations that have one - #60

Merged
Mandalorian-Wang merged 1 commit into
boxlite-ai:mainfrom
Mandalorian-Wang:docs/network-policy-console
Oct 21, 2026
Merged

Mandalorian-Wang merged 1 commit into
boxlite-ai:mainfrom
Mandalorian-Wang:docs/network-policy-console

Conversation

@Mandalorian-Wang

Copy link
Copy Markdown
Contributor

Answers a fair question about the published page: why is so much of this only
shown as REST?

Partly because the restructure was deliberately deferred — the earlier network work
was scoped to correcting facts, not reordering the page. But partly because I never
checked which operations have a non-HTTP surface. Two of the four do.

Read the dashboard source rather than guessing:

apps/dashboard/src/components/boxes/BoxNetworkSection.tsx
  useUpdateBoxInboundMutation   -> change inbound on an existing box
  useBoxPreviewUrlMutation      -> get a preview URL for a port

Both render in BoxDetails.tsx as a network panel. The other two — issuing and
revoking a signed URL — have no console control and no SDK or CLI method, so they
genuinely are HTTP-only, and the page now says so instead of leaving the reader to
wonder.

Operation Console SDK / CLI HTTP
Set inbound when you create a box — Yes Yes
Change inbound on an existing box Yes No Yes
Get a preview URL for a port Yes No Yes
Issue an expiring signed URL No No Only here
Revoke a signed URL No No Only here

The matrix goes up front, because the honest answer to "why is this all curl?" is
that the surfaces differ per operation, and a reader deserves to see that before
the first code block rather than inferring it from what is missing.

Two facts from the dashboard source worth having

  • The console's wording is better than the page's. It states inbound as
    disabled · your organization versus enabled · anyone. Disabled does not mean
    unreachable — a visitor is sent through sign-in and served if they are a member of
    your organization. The panel's own source comment says exactly that.
  • get url is disabled while inbound is disabled — but the HTTP route is not.
    It returns a URL and token for a private box too, which is what this page's token
    flow is for. Verified against production: GET /box/dasdas/ports/8080/preview-url
    returns 200 for a box whose public is false. Someone finding the button
    greyed out would otherwise reasonably conclude the feature is broken.

Also recorded that outbound on that panel is read-only, since nothing changes a
box's egress after create.

This is the smallest useful version of the deferred restructure: it adds the missing
surfaces without reordering the page.

Checks

python3 scripts/lint-docs.py .          → 180 pages checked, no soft promises
python3 scripts/gen-llms-txt.py --check → llms.txt is up to date
python3 scripts/check-structure.py .    → clean
mint broken-links                       → no broken links found
Tabs/Tab nesting                        → balanced

🤖 Generated with Claude Code

The page taught every inbound operation as a curl call. Two of the four
are in the console, and the console is where someone doing this by hand
will actually do it. Read the dashboard source rather than guessing which
ones:

  apps/dashboard/src/components/boxes/BoxNetworkSection.tsx
    useUpdateBoxInboundMutation   -> change inbound on an existing box
    useBoxPreviewUrlMutation      -> get a preview URL for a port

Both render in BoxDetails.tsx as a `network` panel. The other two —
issuing and revoking a signed URL — have no console control and no SDK or
CLI method, so they really are HTTP-only and now say so.

Added a "Where to do each of these" matrix up front, because the honest
answer to "why is this all curl?" is that the surfaces differ per
operation, and the reader should see that before the first code block
rather than inferring it.

Two facts from the dashboard source worth having:

- The console states inbound as `disabled · your organization` versus
  `enabled · anyone`, which is a better description than "private" and
  "public". Disabled does not mean unreachable: a visitor is sent through
  sign-in and served if they are a member. The panel's own comment says
  as much.
- **`get url` is disabled while inbound is disabled, but the HTTP route
  is not** — it returns a URL and token for a private box, which is what
  the token flow on this page is for. Verified against production: `GET
  /box/dasdas/ports/8080/preview-url` returns 200 for a box whose
  `public` is false. Someone finding the button greyed out would
  otherwise conclude the feature is broken.

Also noted that `outbound` on that panel is read-only, since nothing
changes a box's egress after create.

This is the smallest version of the restructure the plan deferred: it
adds the missing surfaces without reordering the page.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mintlify

mintlify Bot commented Oct 21, 2026

Copy link
Copy Markdown

Preview approval required

This pull request comes from a fork, so Mintlify won't build a preview until someone with write access approves commit c271728.

Approve preview

@coderabbitai

coderabbitai Bot commented Oct 21, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: QUIET
  • Plan: Advanced
  • Run ID: e182d0b0-68b7-4fbe-93b4-7c39f6fea6f0
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Mandalorian-Wang
Mandalorian-Wang merged commit ac2e128 into boxlite-ai:main Oct 21, 2026
2 of 3 checks passed
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