Skip to content
open tomato/ grow-box
GitHub
grow-box pages
  1. grow-box
  2. 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.

NOTE

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:

SourceWhere the service comes from
dockercontainers on this machine
projecta Grow Box sandbox of the project's own
globalthe machine's shared Grow Box sandbox
remotethe 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

StepPlanned use
A project that needs nothingno services listed, nothing changes
One persona database in a container on the laptop
A teamvisual checks in an lg sandbox each project builds once
A shared runnerevery 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).