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, manual tar extract for migration bundles
  • Copying analyst laptop Edge profile (~/.config/microsoft-edge) to Granite
  • Manual docker compose for 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.sh greps 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