Offline and restricted-network operation
For LLMs10 sections
Run installs, asks, and replays on a host with no (or allow-listed) network access, using a bundle prepared in advance on a connected machine.
Component law CLI, tool 0.1.1. Scenario: a closed host where package
registries and release servers are unreachable; all artifacts arrive by
removable media or a one-way drop. Names, paths, and sizes below are
synthetic created-examples.
Applies to
Section titled “Applies to”| Branch | Coverage in this article |
|---|---|
MCP + law serve | the offline bundle procedure feeds both servers; serve worlds travel as world directories (or bundles restored to directories), MCP slices as pinned profiles |
Prerequisites
Section titled “Prerequisites”- A connected staging machine with the same pinned
lawversion as the target (check withlaw version --jsonon both). - The full dependency closure of the project (
law.toml+law.lock) resolved on the staging machine. - Write-once transfer media (created-example:
/mnt/drop/).
- On the staging machine, resolve and freeze the world:
law install --project <dir>(connected), thenlaw testover thelaw.lockworld to confirm the closure is green. - Build the portable bundle (real command):
law pack --project <dir> --out /mnt/drop/world-2026-10-03.arxo(real flags:--contents full|source,--deps closure|pins,--codec zstd|deflate,--zstd-level 1..19,--timings,--no-tests,--json). Prefer--deps closureso the bundle is self-sufficient; the container carries packages with their operations’ inputs, identical files stored once. - Sign the bundle if your policy requires it (real):
law sign /mnt/drop/world-2026-10-03.arxo --key <keyfile> --role publisher. - Transfer the
.arxofile (and, for first provisioning, thelawrelease archive +.sha256) to the closed host. - On the closed host, verify before use (real):
law inspect world-2026-10-03.arxo --verify --trust <key> --files. Then eitherlaw unpack world-2026-10-03.arxo --out <dir>or execute straight from the container (law ask <file.arxo> …,law test <file.arxo> …— real, no unpacking needed). - For project-form installs on the closed host, use the one offline
flag that exists (real):
law install --offline. Confirm no other package command is in your runbook (see Limits below). - Serve locally as usual (real):
law serve --world <dir> --journal <dir> --host 127.0.0.1 --port 8480(real defaults: host127.0.0.1, port8480).
Expected result
Section titled “Expected result”law inspect --verifyexits0withintegrityandsignaturelines matching the release record.law test <file.arxo>andlaw ask <file.arxo> …exit0with no network access on the host.GET /healthzandGET /readyz(real endpoints; readyz returns200after all workers warm up) answer on the local port.
Result check
Section titled “Result check”- Disconnect the staging check: run the full ask/replay set with the
network interface down (or in a network namespace without a route) and
confirm exit
0and unchangedresultHashvalues. - Egress verification (operator-policy-example): capture traffic during
the run (
tcpdump/firewall counters — created-example tooling, not tool behavior) and confirm zero non-loopback connections; any egress is a finding, not background noise.
Failures and diagnostics
Section titled “Failures and diagnostics”law add/law updateattempted offline: these subcommands have no--offlineflag (implementation limit, stated inlaw --help): they must read registry descriptors to build the closure. Prepare the closure on the connected machine instead.law install --offlinefailing on a missing descriptor: the bundle or project cache is incomplete; re-run connectedlaw installon staging and re-pack with--deps closure.no signature from a --trust or trustedKeys key: the trust set is non-empty but no signature matches it. Check both sides against the independent operator trust record before touching either: unsigned bundle, different publisher, wrong trust set, or wrong release are all possible — a missing key file in transit is only one of them. Never bend the trusted keys to fit the artifact you received; resolve which side is wrong first (see Install and trust artifacts).- Stale calendars/resources: the release artifact embeds
resources(reallaw packcontent); a bundle built last quarter answers with last quarter’s resources. Re-pack when the normative inputs change.
Support boundaries
Section titled “Support boundaries”- Supported (tool behavior):
--offlineoninstallonly; container execution without unpacking; hash/signature verification of bundles. - Implementation limit: dependency resolution (
add,update) always needs registry descriptors; there is no offline closure solver. - Reference setting: media paths, ports, and capture tooling here are created-examples. “Isolated” in this article means only “no non-loopback traffic observed during the check” — it says nothing about side channels, media hygiene, or host hardening.
Next step
Section titled “Next step”Record the bundle filename, its hashes, and the trusted key ids in the change log; for version moves, continue with Upgrades and compatibility.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.