grow-box pages
- grow-box
- With rafa
With rafa
What is planned to connect Grow Box to rafa, through an add-on that checks every service a run needs before the loop starts.
This page is a placeholder: everything on it is planned in an open spec (rafa#1261, the rafa-sandbox add-on), and none of it is built. It names no dates, because the spec names none.
Today
Grow Box and rafa do not call each other. You can run a rafa loop inside a Grow Box sandbox by cloning the project and setting SANDBOX_RUN_CMD to the command you want, as on Getting started.
Coming: the rafa-sandbox add-on
rafa's repository plans an addons/ folder for modules rafa does not bundle (rafa#1257, add-ons in their own folder). Grow Box stays its own repository; the add-on is the bridge.
rafa-sandbox would answer, for each service a project's work needs, where it comes from. A service is anything a run needs beside the code: a CI pipeline, a container runtime, a database, a browser for visual checks. Each service would take one of four sources:
| Source | Where the service comes from |
|---|---|
docker | containers on this machine |
project | a Grow Box sandbox of the project's own |
global | the machine's shared Grow Box sandbox |
remote | the real service, its address and secret named in the environment |
Before a loop starts, rafa would check that each service answers. When one is missing, the project's onMissing setting decides: ask stops the run and names the command that brings the service up, and build builds the sandbox first. A sandbox it builds stays for the next run.
The services would be listed in Grow Box's own project file, .grow-box/config. This is the example from the spec; nothing reads it yet:
seed: clone
onMissing: ask
services:
ci: { source: project, preset: lg }
db: { source: docker, image: postgres:16 }
hub: { source: remote, urlEnv: RAFA_HUB_URL, tokenSecret: rafa.hub.token }
[verify: not run; no tool reads .grow-box/config yet.]
Who each piece is for
| Step | Planned use |
|---|---|
| A project that needs nothing | no services listed, nothing changes |
| One person | a database in a container on the laptop |
| A team | visual checks in an lg sandbox each project builds once |
| A shared runner | every project points at the machine's global box |
design-to-code's planned add-on, rafa-d2c, would use rafa-sandbox for its visual check in an lg box (rafa#1262).