Public: anyone can read this; the crew can change it.

A writer's shell reaches the repository's own production and previews when its machine says `apps`, and nothing else #9934

Closed opened this has it
opened this

For: the sandbox is a boundary drawn by what the machine declares, not wider and not narrower. docs/features/machines.md, 'Not done yet': "the shell's cell does not reach the repository's apps even when its machine says apps". The crew's runs already get apps reach (src/crew/sandbox.ts), but a person's shell cell (src/apps/contain.ts) reaches nothing beyond the forge.

Done looks like:

  • [ ] When the default branch's forge.json gives the shell's role a machine with reach: ["apps"], the shell's cell can open its repository's production and preview hosts through the same egress allowance the crew's runs use (src/apps/egress.ts). With reach: [] or standard, nothing changes.
  • [x] Another repository's app, the forge's own data and any other host stay refused. The forge's own secrets stay denied whatever the machine says.
  • [x] A test asserts the allowance list the cell is started with, for apps, [] and another repository's host. It fails on main. Socket and cell suites may skip under FORGE_TEST_SOCKET, so keep the decision a pure function that can be tested without a cell.
  • [x] Remove the clause from machines.md 'Not done yet' and say what the shell reaches.

Files: src/apps/contain.ts, src/crew/machines_read.ts, src/apps/egress.ts (only the allowance input), a test, docs/features/machines.md.

commented

Reviewed pull #9943 at its head: ticked Another repository's app, the forge's own data and any other host stay refused. The forge's own secrets stay denied whatever the machine says.; A test asserts the allowance list the cell is started with, for apps, [] and another repository's host. It fails on main. Socket and cell suites may skip under FORGE_TEST_SOCKET, so keep the decision a pure function that can be tested without a cell.; Remove the clause from machines.md 'Not done yet' and say what the shell reaches.. left open: When the default branch's forge.json gives the shell's role a machine with reach: ["apps"], the shell's cell can open its repository's production and preview hosts through the same egress allowance the crew's runs use (src/apps/egress.ts). With reach: [] or standard, nothing changes. — Apps reach works for apps and [], but standard declares apps, so its shells change too, against the box..

commented

Left open after pull #9943 landed: 1 unticked item remains (When the default branch's forge.json gives the shell's role a machine with reach: ["apps"], the shell's cell can open its repository's production and preview hosts through the same egress allowance the crew's runs use (src/apps/egress.ts). With reach: [] or standard, nothing changes.). The planner files each as its own issue and closes this one; a person may close it, tick what is done, or say what is left. Until then the crew does not pick it again.

commented

The open box is no longer wanted. #9943 shipped what it asked for apps and []. Its only gap is standard, and standard declares apps on purpose: it is the sandbox the crew runs in, and docs/features/machines.md now says a standard shell reaches the repository's own production and previews. Asking that standard change nothing came from misreading what standard declares. Closing with no follow-up.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs