Handbook
Granite operator boundary
Hard rule for ff-granite-hosting-pdca: Granite SSH is only for upgrading the Forge Fleet daemon when POST /v1/admin/git-self-update is insufficient (for example system_install_requires_root). All Market Studio…
Updated
Allowed paths
| Action | Allowed path |
|---|---|
| Upgrade Fleet code | POST /v1/admin/upgrade (apt on production) or SSH only when API returns system_install_requires_root / timer unavailable — run documented install/update on host |
| Deploy Market Studio stack | POST /v1/container-services, POST …/start, POST /v1/admin/forge-market-studio-rollout |
| Bootstrap pattern cell rollups (Postgres) | POST /v1/admin/forge-market-pattern-rollups-backfill after m043 migrate (or scope jobs via Market Studio API) |
| Transfer Market data | PUT /v1/migrations/{id}/data-bundle + migration jobs |
| Build app image on Granite | Fleet job (docker build) or POST /v1/container-templates/build + image pull |
| Register HTTPS route | Fleet migration step register_edge_route (app gateway on the existing Fleet API hostname; no new Cloudflare tunnel) |
| Rollback | POST …/stop, re-run restore migration steps from same bundle |
| Debug | Read-only journalctl, docker ps only when Fleet API status is insufficient — no mutating commands |
| Granite host edge bootstrap (once) | Documented scripts in granite-market-edge-plane.md — Edge CDP + scheduler; not IB Gateway; not laptop profile copy |
Forbidden on Granite SSH
scp,rsync, manualtarextract for migration bundles- Copying analyst laptop Edge profile (
~/.config/microsoft-edge) to Granite - Manual
docker composefor Market Studio or market-related stacks - Manual volume copies or volume surgery
- Manual Caddy / edge config edits for Market Studio routes
- Manual image build or registry push outside Fleet jobs
- Any mutating deploy or data command for Market Studio cutover
Enforcement
- Requirement R06 in 00-requirements-ledger.md
- Phase prompts include operator allowlist / denylist sections
./scripts/ff-granite-hosting-pdca/check-granite-boundary.shgreps operator runbooks for forbidden patterns (phase FH65)
Reference
- Coordinator program: ff-granite-hosting-pdca
- Fleet self-update:
./scripts/update-fleet.sh --remote-git-self-update